from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
@api.route('', methods=['POST'])
def get_token():
token = generate_auth_token(request.id.data)
t = {
'token': token.decode('ascii')
}
return jsonify(t)
def generate_auth_token():
s = Serializer(current_app.config['SECRET_KEY'], expiration=7200)
return s.dumps(id)
目前:
现在我实现的是,token 为2小时有效期
预期:
客户端2小时没有发送请求时才过期,否则每次请求都会对token进行延期
那你没理解token的用法。
首先:①理论上使用token的话,服务器端是不允许保存与token有关的数据的。②理论上同一用户可以有无数多个token,且均有效。③token一旦生成,其过期与否仅由其被生成时设置的过期时间决定。
所以,你使用token是无法达到预期的。
不过你有个思路可以考虑下:①服务端生成一个唯一的字符串如uuid。②将uuid存储至redis,命名为:
user:token:10001 = xsir34uf8gu83jowf3f
,并设置过期时间为2小时。③每次请求过来,均重置该token在redis中的过期时间。