jwt token timezone 변경 .
parent
1cb698e8ea
commit
f153157227
|
|
@ -400,6 +400,17 @@ async def _autocomplete_logic(autocomplete_item:dict):
|
||||||
status_code=status.HTTP_502_BAD_GATEWAY,
|
status_code=status.HTTP_502_BAD_GATEWAY,
|
||||||
detail="자동완성 place id 추출 실패",
|
detail="자동완성 place id 추출 실패",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not new_url:
|
||||||
|
step1_elapsed = (time.perf_counter() - step1_start) * 1000
|
||||||
|
logger.error(
|
||||||
|
f"[crawling] Autocomplete FAILED - URL을 찾을 수 없음 ({step1_elapsed:.1f}ms)"
|
||||||
|
)
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="해당 장소의 네이버 지도 URL을 찾을 수 없습니다.",
|
||||||
|
)
|
||||||
|
|
||||||
return new_url
|
return new_url
|
||||||
|
|
||||||
def _extract_image_name(url: str, index: int) -> str:
|
def _extract_image_name(url: str, index: int) -> str:
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from sqlalchemy import select, update
|
from sqlalchemy import select, update
|
||||||
|
|
@ -113,7 +113,7 @@ class AuthService:
|
||||||
logger.debug(f"[AUTH] 리프레시 토큰 저장 완료 - user_id: {user.id}, user_uuid: {user.user_uuid}")
|
logger.debug(f"[AUTH] 리프레시 토큰 저장 완료 - user_id: {user.id}, user_uuid: {user.user_uuid}")
|
||||||
|
|
||||||
# 7. 마지막 로그인 시간 업데이트
|
# 7. 마지막 로그인 시간 업데이트
|
||||||
user.last_login_at = datetime.now(timezone.utc)
|
user.last_login_at = datetime.now()
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
||||||
redirect_url = f"{prj_settings.PROJECT_DOMAIN}"
|
redirect_url = f"{prj_settings.PROJECT_DOMAIN}"
|
||||||
|
|
@ -168,7 +168,7 @@ class AuthService:
|
||||||
if db_token.is_revoked:
|
if db_token.is_revoked:
|
||||||
raise TokenRevokedError()
|
raise TokenRevokedError()
|
||||||
|
|
||||||
if db_token.expires_at < datetime.now(timezone.utc):
|
if db_token.expires_at < datetime.now():
|
||||||
raise TokenExpiredError()
|
raise TokenExpiredError()
|
||||||
|
|
||||||
# 4. 사용자 확인
|
# 4. 사용자 확인
|
||||||
|
|
@ -428,7 +428,7 @@ class AuthService:
|
||||||
.where(RefreshToken.token_hash == token_hash)
|
.where(RefreshToken.token_hash == token_hash)
|
||||||
.values(
|
.values(
|
||||||
is_revoked=True,
|
is_revoked=True,
|
||||||
revoked_at=datetime.now(timezone.utc),
|
revoked_at=datetime.now(),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
@ -453,7 +453,7 @@ class AuthService:
|
||||||
)
|
)
|
||||||
.values(
|
.values(
|
||||||
is_revoked=True,
|
is_revoked=True,
|
||||||
revoked_at=datetime.now(timezone.utc),
|
revoked_at=datetime.now(),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ Access Token과 Refresh Token의 생성, 검증, 해시 기능을 제공합니
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from jose import JWTError, jwt
|
from jose import JWTError, jwt
|
||||||
|
|
@ -23,7 +23,7 @@ def create_access_token(user_uuid: str) -> str:
|
||||||
Returns:
|
Returns:
|
||||||
JWT 액세스 토큰 문자열
|
JWT 액세스 토큰 문자열
|
||||||
"""
|
"""
|
||||||
expire = datetime.now(timezone.utc) + timedelta(
|
expire = datetime.now() + timedelta(
|
||||||
minutes=jwt_settings.JWT_ACCESS_TOKEN_EXPIRE_MINUTES
|
minutes=jwt_settings.JWT_ACCESS_TOKEN_EXPIRE_MINUTES
|
||||||
)
|
)
|
||||||
to_encode = {
|
to_encode = {
|
||||||
|
|
@ -48,7 +48,7 @@ def create_refresh_token(user_uuid: str) -> str:
|
||||||
Returns:
|
Returns:
|
||||||
JWT 리프레시 토큰 문자열
|
JWT 리프레시 토큰 문자열
|
||||||
"""
|
"""
|
||||||
expire = datetime.now(timezone.utc) + timedelta(
|
expire = datetime.now() + timedelta(
|
||||||
days=jwt_settings.JWT_REFRESH_TOKEN_EXPIRE_DAYS
|
days=jwt_settings.JWT_REFRESH_TOKEN_EXPIRE_DAYS
|
||||||
)
|
)
|
||||||
to_encode = {
|
to_encode = {
|
||||||
|
|
@ -104,9 +104,9 @@ def get_refresh_token_expires_at() -> datetime:
|
||||||
리프레시 토큰 만료 시간 계산
|
리프레시 토큰 만료 시간 계산
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
리프레시 토큰 만료 datetime (UTC)
|
리프레시 토큰 만료 datetime (로컬 시간)
|
||||||
"""
|
"""
|
||||||
return datetime.now(timezone.utc) + timedelta(
|
return datetime.now() + timedelta(
|
||||||
days=jwt_settings.JWT_REFRESH_TOKEN_EXPIRE_DAYS
|
days=jwt_settings.JWT_REFRESH_TOKEN_EXPIRE_DAYS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue