import base64 import secrets import jwt from datetime import datetime, timedelta def generate_jwt_token( email: str, name: str, secret_key: str = "QCopWfW1tmdxRulrO3axMBx78ygNkOI-fOv7J-4iJaU", # 建议通过环境变量注入实际密钥 expires: int = 3600 # 默认有效期 1 小时(秒) ) -> str: """ 生成包含用户信息的 JWT Token :param email: 用户邮箱(必需) :param name: 用户名(必需) :param secret_key: 加密密钥(默认示例值) :param expires: Token 有效期(秒) :return: JWT Token 字符串 """ payload = { "email": email, "name": name, # 可添加其他字段 "exp": datetime.utcnow() + timedelta(seconds=expires) } return jwt.encode( payload, secret_key, algorithm="HS256" ) # 示例用法 if __name__ == "__main__": # 生成有效 Token valid_token = generate_jwt_token( email="ygtx@ygtx.cn", name="ygtx", expires=3600 ) print("Valid Token:", valid_token) # 生成已过期 Token(用于测试过期场景) expired_token = generate_jwt_token( email="liuq@yg.com", name="liuq", expires=3600 # 负值强制过期 ) print("Expired Token:", expired_token) # 生成32字节(256位)随机数据 key_bytes = secrets.token_bytes(32) # 转换为Base64字符串(无填充,URL安全) key_base64 = base64.urlsafe_b64encode(key_bytes).decode().strip("=") print("密钥:", key_base64)