1
This commit is contained in:
+4
-2
@@ -19,15 +19,17 @@ RedisDep = Annotated[Redis, Depends(get_redis)]
|
||||
def alterToken(redis: RedisDep, alter_token: str | None = Header(None)):
|
||||
if alter_token is not None:
|
||||
try:
|
||||
decoded_bytes = base64.b64decode(alter_token)
|
||||
decoded_bytes = base64.urlsafe_b64decode(alter_token)
|
||||
decoded_str = decoded_bytes.decode('utf-8')
|
||||
alter = json.loads(decoded_str)
|
||||
# 6小时过期
|
||||
if (int(time.time() * 1000) - alter['time']) / (60 * 60 * 1000) > 6:
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
alterData = get_redis_info(redis, f'dcalc:adventure:{alter["alter"]}', lambda: get_adv_info(alter['alter']))
|
||||
if alterData is None:
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
return AlterState(alterData['class'], alter_token, {}, alter.get('equVersion', '0'), alter['time'])
|
||||
except (base64.binascii.Error, json.JSONDecodeError):
|
||||
except (base64.binascii.Error, json.JSONDecodeError, KeyError, TypeError, UnicodeDecodeError):
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
else:
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
|
||||
Reference in New Issue
Block a user