更新用户在线时间设置

This commit is contained in:
taiyi 2026-04-12 17:08:07 +08:00
parent 7103e5d62c
commit 71479e2ad1

View File

@ -21,12 +21,21 @@ logger = logging.getLogger(__name__)
security = HTTPBearer()
def create_access_token(data: dict, expires_delta: timedelta = None):
"""创建访问令牌"""
"""创建访问令牌
业务要求普通登录至少 7 天内不掉线
因此在未显式传入 expires_delta 强制最小有效期为 7
"""
to_encode = data.copy()
if expires_delta:
expire = datetime.utcnow() + expires_delta
else:
expire = datetime.utcnow() + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
min_expire_minutes = 60 * 24 * 7 # 7 days
configured_expire_minutes = int(getattr(settings, "ACCESS_TOKEN_EXPIRE_MINUTES", min_expire_minutes) or min_expire_minutes)
effective_expire_minutes = max(configured_expire_minutes, min_expire_minutes)
expire = datetime.utcnow() + timedelta(minutes=effective_expire_minutes)
to_encode.update({"exp": expire})
encoded_jwt = jwt.encode(to_encode, settings.JWT_SECRET_KEY, algorithm=settings.JWT_ALGORITHM)
return encoded_jwt