python - token 还记得我保存在数据库中的 flask 登录吗?

标签 python cryptography flask flask-login

因此,通常在我工作的大型网站中,您希望将一些 session 信息保存到数据库中,以便 cookie 不能轻易复制。

使用flask-login,有一种方法可以使用token_loader,来实现查询 session 表的功能,例如,将 token 映射到id。

但这意味着 session 表将与用户表的大小相同。

id = db.Column(db.Integer, primary_key=True)
token = db.Column(db.String(250), unique=True)
uid = db.Column(db.Integer, unique=True)


@login_manager.token_loader
def token_load(token):
    return User.sessions.first().token

我见过有 8 MB 完整用户表信息的网站。例如,Drupal 中的站点会被 session 表行堵塞。以这种方式存储代币是否明智?每个用户只需一行告诉我们他们的代币值(value)?

基本上它就像一个密码表,用于识别拥有 cookie 而不是实际登录的用户。

有人在flask-login中的任何地方看到过这个实现吗?

最佳答案

我只想使用“用户”表中的附加字段。这将避免数据在另一个表中重复。如果您只在那里保存 ID 和 token ,我认为没有任何意义有单独的表。但是,如果您计划向其中添加更多信息(例如创建 token 的时间、其他一些更安全的内容并稍后验证 token 、生成 token 的 IP 地址或其他内容),那么您当然可以将需要单独的表。我的 2c :)

关于python - token 还记得我保存在数据库中的 flask 登录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666492/

相关文章:

python + 如何删除消息 "cryptography is not installed, use of crypto disabled"

python - Flask api 表示影响所有 View

python - Flask 中的自定义中止映射/异常

ios - RSA 加密是否影响导出合规性?

python - django 模板 - 如何动态访问变量?

python - python 中的 locals() 和对象引用

python - 在 Windows 7 上运行 docker-compose 返回 -1

c++ - RSA 程序只能加密和解密特定范围内的数字

python - 用于 Python 应用程序的 Bluemix 日志记录

python - 字典中哪些键值没有更新?