python jwt 无交互token过期 有交互续token过期时间
JWT(JSON Web Token)是一种用于身份验证和授权的开放标准,它使用一种紧凑且自包含的格式传递用户信息。JWT 可以无交互方式进行身份验证,并且可以在过期时间内保持有效。
在 Python 中,您可以使用 PyJWT 库来创建和验证 JWT。下面是一个使用 PyJWT 库创建 JWT 的示例:
import jwt
import datetime
# 设置过期时间
expire_time = datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
# 添加有效载荷
payload = {
'user_id': 123,
'exp': expire_time
}
# 创建 JWT
token = jwt.encode(payload, 'secret_key', algorithm='HS256')
print(token)
在上面的示例中,我们设置了 JWT 的过期时间为当前时间加上 30 分钟,并在有效载荷中添加了一个用户 ID。然后,我们使用 jwt.encode() 方法创建 JWT 并将其打印出来。
如果您希望在交互式环境中延长 JWT 的过期时间,可以通过更新有效载荷中的 exp 字段来实现:
import jwt
import datetime
# 解码 JWT
token = 'your_jwt_here'
payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
# 延长过期时间
expire_time = datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
payload['exp'] = expire_time
# 创建新的 JWT
new_token = jwt.encode(payload, 'secret_key', algorithm='HS256')
print(new_token)
在上面的示例中,我们首先使用 jwt.decode() 方法解码 JWT 并获取有效载荷。然后,我们更新有效载荷中的 exp 字段以延长过期时间,并使用 jwt.encode() 方法创建新的 JWT。
需要注意的是,JWT 仍然具有最初设置的过期时间。因此,如果您希望延长 JWT 的过期时间,请确保在过期时间到达前更新有效载荷中的 exp 字段
原文地址: https://www.cveoy.top/t/topic/gC14 著作权归作者所有。请勿转载和采集!