fix jwt parameter parsing error

This commit is contained in:
downdawn
2023-05-19 19:17:03 +08:00
committed by Wu Clan
parent 4c12c53e94
commit 6fbddbafed
2 changed files with 5 additions and 6 deletions
+3 -4
View File
@@ -43,12 +43,11 @@ def password_verify(plain_password: str, hashed_password: str) -> bool:
return pwd_context.verify(plain_password, hashed_password)
async def create_access_token(sub: int | Any, data: dict, expires_delta: timedelta | None = None) -> str:
async def create_access_token(sub: int | Any, expires_delta: timedelta | None = None, **kwargs) -> str:
"""
Generate encryption token
:param sub: The subject/userid of the JWT
:param data: Data transferred to the token
:param expires_delta: Increased expiry time
:return:
"""
@@ -56,9 +55,9 @@ async def create_access_token(sub: int | Any, data: dict, expires_delta: timedel
expires = datetime.utcnow() + expires_delta
expire_seconds = expires_delta.total_seconds()
else:
expires = datetime.utcnow() + timedelta(seconds=settings.TOKEN_EXPIRE_MINUTES)
expires = datetime.utcnow() + timedelta(seconds=settings.TOKEN_EXPIRE_SECONDS)
expire_seconds = settings.TOKEN_EXPIRE_SECONDS
to_encode = {'exp': expires, 'sub': str(sub), **data}
to_encode = {'exp': expires, 'sub': str(sub), **kwargs}
token = jwt.encode(to_encode, settings.TOKEN_SECRET_KEY, settings.TOKEN_ALGORITHM)
if sub not in settings.TOKEN_WHITE_LIST:
await redis_client.delete(f'token:{sub}:*')
+2 -2
View File
@@ -32,7 +32,7 @@ class UserService:
# 获取最新用户信息
user = await UserDao.get_user_by_id(db, current_user.id)
# 创建token
access_token = await jwt.create_access_token(user.id, {'role_ids': user_role_ids})
access_token = await jwt.create_access_token(user.id, role_ids=user_role_ids)
return access_token, user
@staticmethod
@@ -48,7 +48,7 @@ class UserService:
await UserDao.update_user_login_time(db, obj.username)
user_role_ids = await UserDao.get_user_role_ids(db, current_user.id)
user = await UserDao.get_user_by_id(db, current_user.id)
access_token = await jwt.create_access_token(user.id, {'role_ids': user_role_ids})
access_token = await jwt.create_access_token(user.id, role_ids=user_role_ids)
return access_token, user
@staticmethod