@@ -116,36 +116,23 @@ async def create_refresh_token(user_id: str, multi_login: bool) -> RefreshToken:
116116 return RefreshToken (refresh_token = refresh_token , refresh_token_expire_time = expire )
117117
118118
119- async def create_new_token (user_id : str , token : str , refresh_token : str , multi_login : bool , ** kwargs ) -> NewToken :
119+ async def create_new_token (user_id : str , refresh_token : str , multi_login : bool , ** kwargs ) -> NewToken :
120120 """
121121 Generate new token
122122
123123 :param user_id:
124- :param token
125124 :param refresh_token:
126125 :param multi_login:
127126 :param kwargs: Access token extra information
128127 :return:
129128 """
130129 redis_refresh_token = await redis_client .get (f'{ settings .TOKEN_REFRESH_REDIS_PREFIX } :{ user_id } :{ refresh_token } ' )
131130 if not redis_refresh_token or redis_refresh_token != refresh_token :
132- raise TokenError (msg = 'Refresh Token 已过期' )
133-
134- token_payload = jwt_decode (token )
131+ raise TokenError (msg = 'Refresh Token 已过期,请重新登录' )
135132 new_access_token = await create_access_token (user_id , multi_login , ** kwargs )
136- new_refresh_token = await create_refresh_token (user_id , multi_login )
137- keys = [
138- f'{ settings .TOKEN_REDIS_PREFIX } :{ user_id } :{ token_payload .session_uuid } ' ,
139- f'{ settings .TOKEN_REFRESH_REDIS_PREFIX } :{ user_id } :{ refresh_token } ' ,
140- ]
141- for key in keys :
142- await redis_client .delete (key )
143-
144133 return NewToken (
145134 new_access_token = new_access_token .access_token ,
146135 new_access_token_expire_time = new_access_token .access_token_expire_time ,
147- new_refresh_token = new_refresh_token .refresh_token ,
148- new_refresh_token_expire_time = new_refresh_token .refresh_token_expire_time ,
149136 session_uuid = new_access_token .session_uuid ,
150137 )
151138
@@ -233,8 +220,8 @@ async def jwt_authentication(token: str) -> CurrentUserIns:
233220 """
234221 token_payload = jwt_decode (token )
235222 user_id = token_payload .id
236- token_verify = await redis_client .get (f'{ settings .TOKEN_REDIS_PREFIX } :{ user_id } :{ token_payload .session_uuid } ' )
237- if not token_verify :
223+ redis_token = await redis_client .get (f'{ settings .TOKEN_REDIS_PREFIX } :{ user_id } :{ token_payload .session_uuid } ' )
224+ if not redis_token or token != redis_token :
238225 raise TokenError (msg = 'Token 已过期' )
239226 cache_user = await redis_client .get (f'{ settings .JWT_USER_REDIS_PREFIX } :{ user_id } ' )
240227 if not cache_user :
0 commit comments