mirror of
https://github.com/wangdage12/Snap.Server.git
synced 2026-02-18 02:42:12 +08:00
添加类型注释、修复抽卡id问题
This commit is contained in:
@@ -3,14 +3,42 @@ import datetime
|
||||
from flask import current_app
|
||||
from app.config_loader import config_loader
|
||||
|
||||
def create_token(user_id):
|
||||
def create_token(user_id: str) -> str:
|
||||
"""
|
||||
创建JWT访问令牌,有效期由配置文件中的JWT_EXPIRATION_HOURS决定。
|
||||
|
||||
:param user_id: 用户ID
|
||||
:return: JWT 访问令牌
|
||||
"""
|
||||
payload = {
|
||||
"user_id": user_id,
|
||||
"exp": datetime.datetime.utcnow() + datetime.timedelta(hours=config_loader.JWT_EXPIRATION_HOURS)
|
||||
}
|
||||
return jwt.encode(payload, current_app.config["SECRET_KEY"], algorithm=config_loader.JWT_ALGORITHM)
|
||||
|
||||
def verify_token(token):
|
||||
# 创建刷新token,有效期是访问token的两倍
|
||||
def create_refresh_token(user_id: str) -> str:
|
||||
"""
|
||||
创建JWT刷新令牌,有效期为访问令牌的两倍。
|
||||
|
||||
:param user_id: 用户ID
|
||||
:return: JWT 刷新令牌
|
||||
"""
|
||||
payload = {
|
||||
"user_id": user_id,
|
||||
"exp": datetime.datetime.utcnow() + datetime.timedelta(hours=config_loader.JWT_EXPIRATION_HOURS * 2)
|
||||
}
|
||||
return jwt.encode(payload, current_app.config["SECRET_KEY"], algorithm=config_loader.JWT_ALGORITHM)
|
||||
|
||||
def verify_token(token: str)-> str | None:
|
||||
"""
|
||||
验证JWT令牌并返回用户ID,如果无效则返回None。
|
||||
|
||||
:param token: JWT令牌字符串
|
||||
:type token: str
|
||||
:return: 用户ID或None
|
||||
:rtype: str | None
|
||||
"""
|
||||
try:
|
||||
data = jwt.decode(token, current_app.config["SECRET_KEY"], algorithms=[config_loader.JWT_ALGORITHM])
|
||||
return data["user_id"]
|
||||
|
||||
Reference in New Issue
Block a user