首页 > 解决方案 > 使用 Vue 和 Flask 时,用户会话应该如何存储?

问题描述

我目前正在开发一个应用程序,用户可以在其中登录并从 Firebase 访问他们的数据。该应用程序曾经只是一个 Flask 应用程序,所以我过去常常flask_login帮助跟踪用户会话。

但是,我现在尝试将 Vue 用于前端(包括路由),所以从技术上讲,我们将运行一个 Vue 应用程序以及一个 Flask 应用程序,其中 Vue 应用程序将向 Flask 应用程序发出 GET 请求。我在 Vue 中找到了一个身份验证教程。我想知道我是否需要这个和flask_login. 如果是这样,那会是什么样子?

标签: vue.jsflaskweb-applicationsflask-login

解决方案


真的很晚了,但由于没有回答,我会试一试:

我建议使用 JSON Web 令牌 (JWT)。这篇文章可能比我以往任何时候都更好地解释它。

基本流程是:

在 [flask] 后端,每个需要保护的 API 调用都会有一个装饰器(类似于@login_required)来保护资源不被未经身份验证的用户访问。对于要进行身份验证的用户,他们需要从“/login”中获取,并且服务器将使用令牌进行响应,并将其存储在内存中。此令牌将需要与任何后续 API 调用一起发送。当用户注销时,只需在前端取消令牌即可。

在我的设置中,我使用了 flask-jwt-extended,在 vue 上,只需确保您存储了令牌,如果没有,则呈现登录模式或弹出窗口或重定向到登录页面。

阅读我提到的帖子以了解 JWT 刷新流程。


推荐阅读