feat: 疑わしきところにログ追加、コメントも追加。

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-08-23 18:23:37 +09:00
parent 920ae17836
commit 2107211d95
2 changed files with 14 additions and 2 deletions

View File

@ -32,8 +32,10 @@ def check_session_expired(session: Union[UserSession, None] = Depends(get_curren
return None
last_access_time = session.last_access_time
session_expired_period = datetime.datetime.fromtimestamp(
last_access_time) + datetime.timedelta(minutes=environment.SESSION_EXPIRE_MINUTE)
last_access_datetime = datetime.datetime.fromtimestamp(last_access_time)
session_expired_period = last_access_datetime + datetime.timedelta(minutes=environment.SESSION_EXPIRE_MINUTE)
logger.debug(f'last_access_time: {last_access_datetime}')
logger.debug(f'session_expired_period: {session_expired_period}')
if session_expired_period < datetime.datetime.now():
return None
@ -49,4 +51,5 @@ def verify_session(session: Union[UserSession, None] = Depends(check_session_exp
except JWTTokenVerifyException as e:
logger.info(e)
return None
# FIXME: ここで検証後のセッションになっていないのでは?
return session

View File

@ -1,4 +1,5 @@
import base64
import datetime
import json
from typing import Optional
@ -7,8 +8,11 @@ import requests
from starlette import status
from src.error.exceptions import JWTTokenVerifyException
from src.logging.get_logger import get_logger
from src.system_var import environment
logger = get_logger('JWTトークン検証')
class JWTToken:
id_token: str
@ -134,8 +138,13 @@ class JWTToken:
# Cognitoのサーバー時間とのズレにより、Issued atクレームの検証に失敗するパターンに対処する
options={'verify_iat': False}
)
# トークン有効期限をログに出力
exp = verified_jwt.get('exp', '')
expire_datetime = datetime.datetime.fromtimestamp(verified_jwt['iat']) if exp else None
logger.info(f"トークン有効期限:{expire_datetime}")
# 有効期限(exp)が切れた場合、トークンをリフレッシュする
except jwt.ExpiredSignatureError:
logger.info('IDトークンの有効期限が切れたため、トークンをリフレッシュ')
refreshed_jwt_token = JWTToken.refresh(self.refresh_token)
return refreshed_jwt_token.verified_token()
# 有効期限以外の検証に失敗した場合は例外とする