问题描述
我正在为一个无状态的 Flask 应用程序而苦苦挣扎。通常我使用flask-login 来处理所有的用户管理。但是现在我需要做这个无状态的,因为应用程序应该在云运行上运行。所以它必须是无状态的。
我包含的 RestAPI 工作得很好(我在那里使用令牌)。但是我怎么能处理前端的无状态部分呢? 我怎样才能在请求中获取用户信息?在无状态服务器上,我无法使用客户端会话,因为我无法在请求中验证它?我也不能使用我可爱的 current_user 变量 :(
有什么帮助吗?
帕斯卡
解决方法
有多种类型的身份验证,Flask-Login 使用一种名为 session authentication
的身份验证,如果您想让您的应用无状态,您应该使用 token authentication
,如 OAuth2 或 JWT。看看 Flask-JWT
、Flask-JWT-Extended
和 Flask-OAuthLib
。
但这并不意味着您必须重构您的应用程序,您只需从云提供商负载平衡器启用 sticky session
功能即可。
查看以下文档以在 AWS 上执行此操作:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html