lan*_*ng2 1 python authentication flask
我正在使用Flask with itsdangerous来实现基于令牌的登录.它工作正常,但当用户通过logout_user()
调用注销时,令牌仍然有效,导致不一致.所以我试图使令牌过期,但找不到合适的方法.这是我想出的:
def generate_auth_token(self, expiration):
s = Serializer(current_app.config['SECRET_KEY'],
expires_in=expiration)
return s.dumps({'id': self.id}).decode('ascii')
@staticmethod
def verify_auth_token(token):
import flask_login
u = flask_login._get_user()
if not u or isinstance(u, flask_login.AnonymousUserMixin):
return None
s = Serializer(current_app.config['SECRET_KEY'])
try:
data = s.loads(token)
except:
return None
return User.query.get(data['id'])
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个解决方案.有人可以提出更好的方法吗?
最终,基于令牌的身份验证不承认容易特定的失效.(通用失效很容易 - 只需更改SECRET_KEY
用于对会话进行签名 - 每个会话都会自动失效).有几种方法可以使特定的失效工作:
归档时间: |
|
查看次数: |
1742 次 |
最近记录: |