JWT Token 有效时间设置和验证 - Python 示例
在使用 JWT 库时,可以在生成 Token 时指定有效时间。可以使用datetime模块来计算过期时间,然后将过期时间添加到 JWT 的 payload 中。
下面是一个示例代码:
import datetime
import jwt
# 设置过期时间为 30 分钟
exp_time = datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
# 生成 payload
payload = {
'user_id': '123',
'exp': exp_time,
}
# 生成 Token
secret_key = 'secret_key'
token = jwt.encode(payload, secret_key, algorithm='HS256')
print(token)
在上面的代码中,exp_time 变量表示过期时间,payload 变量包含了需要传递的数据和过期时间。jwt.encode() 方法将 payload 编码为 Token,其中 secret_key 是用于签名的密钥,algorithm 表示使用的签名算法。
当使用该 Token 时,可以使用 jwt.decode() 方法将 Token 解码,如果 Token 已过期则会抛出 jwt.exceptions.ExpiredSignatureError 异常。在使用 Token 之前,需要先验证 Token 的有效性。
# 验证 Token
try:
decoded_payload = jwt.decode(token, secret_key, algorithms=['HS256'])
except jwt.exceptions.ExpiredSignatureError:
print('Token 已过期')
else:
print(decoded_payload)
在上面的代码中,jwt.decode() 方法将 Token 解码为 payload,如果 Token 已过期则会抛出 jwt.exceptions.ExpiredSignatureError 异常,否则返回解码后的 payload。
原文地址: https://www.cveoy.top/t/topic/n8ug 著作权归作者所有。请勿转载和采集!