我正在使用 flask-login 扩展设置一个 Flask 应用程序。flask-login 文档建议设置一个替代令牌生成器,它不简单地使用用户 ID 和应用程序密码来创建会话令牌(这是默认方法)。但它没有为如何做到这一点提供任何明确的建议。
因此,对于User.get_auth_token()
,我使用make_secure_token
用户电子邮件和密码作为参数的函数(所以我得到了这些参数的哈希值 + 应用程序密码)。
接下来,我需要能够通过token_loader
回调从令牌中获取用户。在 flask-login 中生成令牌的默认方法是同时包含原始用户 ID 和用户 ID + 应用程序密码的哈希值。这使得从令牌中查找用户变得非常简单——只需获取 ID 并查找用户即可。
但是我应该在会话令牌中公开用户 ID 吗?如果我不这样做,我应该将会话令牌存储在数据库中还是使用用户 ID 存储在其他地方以使查找成为可能?
简而言之:有谁知道创建安全令牌和相应token_loader
回调的最佳实践是什么?