dev
This commit is contained in:
@@ -10,12 +10,10 @@ from api.core.exception import ResponseException
|
||||
|
||||
|
||||
class AlterState:
|
||||
def __init__(self, value: str, token: str, charcater: Character, equVersion: str,time: int):
|
||||
self.value = value
|
||||
try:
|
||||
self.alter = get_adv_info(value)["class"]
|
||||
except Exception:
|
||||
raise ResponseException(f'无效的职业{value}')
|
||||
def __init__(self, alter: str, token: str, charcater: Character, equVersion: str,time: int):
|
||||
if alter is None:
|
||||
raise ResponseException('无效的职业')
|
||||
self.alter = alter
|
||||
self.token = token
|
||||
self.origin = self.alter.split('.')[-1]
|
||||
self.character = charcater
|
||||
|
||||
@@ -10,7 +10,6 @@ def get_redis_info(redis, key, fun,without_gzip=False):
|
||||
else:
|
||||
info = json.loads(gzip_unzip(redis.get(key)))
|
||||
except Exception as ex:
|
||||
print(ex)
|
||||
info = None
|
||||
if info is None:
|
||||
info = fun()
|
||||
|
||||
+5
-2
@@ -5,16 +5,18 @@ from sqlalchemy.orm import Session
|
||||
from fastapi import Depends, Header
|
||||
|
||||
from api.core.exception import ResponseException
|
||||
from core.character.adventure import get_adv_info
|
||||
from database.connect import get_db, get_redis
|
||||
from api.core.Auth import AlterState
|
||||
import base64
|
||||
import json
|
||||
from api.core.Redis import get_redis_info
|
||||
|
||||
SessionDep = Annotated[Session, Depends(get_db)]
|
||||
RedisDep = Annotated[Redis, Depends(get_redis)]
|
||||
|
||||
|
||||
def alterToken(alter_token: Optional[str] = Header(None)):
|
||||
def alterToken(redis:RedisDep,alter_token: Optional[str] = Header(None)):
|
||||
if alter_token is not None:
|
||||
try:
|
||||
decoded_bytes = base64.b64decode(alter_token)
|
||||
@@ -23,7 +25,8 @@ def alterToken(alter_token: Optional[str] = Header(None)):
|
||||
# 6小时过期
|
||||
if (int(time.time() * 1000) - alter['time']) / (60 * 60 * 1000) > 6:
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
return AlterState(alter['alter'], alter_token, {}, alter['equVersion'], alter['time'])
|
||||
alterData = get_redis_info(redis, f'dcalc:adventure:{alter['alter']}', lambda : get_adv_info(alter['alter']))
|
||||
return AlterState(alterData["class"], alter_token, {}, alter['equVersion'], alter['time'])
|
||||
except (base64.binascii.Error, json.JSONDecodeError):
|
||||
raise ResponseException('登录过期或无效Token,请刷新后重试')
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user