Mir*_*lov 3 python authentication flask flask-login
我有一个用Flask编写的Web服务。用户A使用一些用户名登录服务。我希望用户B不能使用相同的用户名登录,直到用户A的会话过期。换句话说,我想禁用每个用户的并发,同时登录。如何在Flask-Login中进行操作?
您需要做的是在数据库的用户模型中存储某种会话令牌。
class User(db.Model):
....
session_token = db.Column(db.String(40), index=True)
Run Code Online (Sandbox Code Playgroud)
用户登录时,将生成会话令牌并将其保存在数据库中。
更新您的User.get_id函数以返回会话令牌,而不是用户ID。
def get_id(self):
return str(self.session_token)
Run Code Online (Sandbox Code Playgroud)
在user_loader回调中,您基于令牌查找用户:
@lm.user_loader
def load_user(session_token):
return User.query.filter_by(session_token=session_token).first()
Run Code Online (Sandbox Code Playgroud)
使用此设置,令牌将在每次登录时更新,这将自动使以前的会话无效。
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |