vue.js - 使用 Vue 和 Flask 时,用户会话应该如何存储?
问题描述
我目前正在开发一个应用程序,用户可以在其中登录并从 Firebase 访问他们的数据。该应用程序曾经只是一个 Flask 应用程序,所以我过去常常flask_login
帮助跟踪用户会话。
但是,我现在尝试将 Vue 用于前端(包括路由),所以从技术上讲,我们将运行一个 Vue 应用程序以及一个 Flask 应用程序,其中 Vue 应用程序将向 Flask 应用程序发出 GET 请求。我在 Vue 中找到了一个身份验证教程。我想知道我是否需要这个和flask_login
. 如果是这样,那会是什么样子?
解决方案
真的很晚了,但由于没有回答,我会试一试:
我建议使用 JSON Web 令牌 (JWT)。这篇文章可能比我以往任何时候都更好地解释它。
基本流程是:
在 [flask] 后端,每个需要保护的 API 调用都会有一个装饰器(类似于@login_required)来保护资源不被未经身份验证的用户访问。对于要进行身份验证的用户,他们需要从“/login”中获取,并且服务器将使用令牌进行响应,并将其存储在内存中。此令牌将需要与任何后续 API 调用一起发送。当用户注销时,只需在前端取消令牌即可。
在我的设置中,我使用了 flask-jwt-extended,在 vue 上,只需确保您存储了令牌,如果没有,则呈现登录模式或弹出窗口或重定向到登录页面。
阅读我提到的帖子以了解 JWT 刷新流程。
推荐阅读
- javascript - 如何在 react-google-maps 中停止鼠标悬停和 onmouseout 事件上的标记闪烁?
- qt - 运行编译程序后没有托盘图标
- visual-studio - ProGet 符号和源服务器:正确下载 pdb 但找不到源
- python - ImportError:无法导入名称 ConnectionPool
- sql-server - 试图将记录在 jmeter 结果中的时间戳从 csv 保存到 MSSQL 服务器
- javascript - 如何使用 fileReader 对象的 url?
- reactjs - React拖放事件传播问题
- angular - rxjs v6 中不推荐使用的方法
- java - NodeJs 从 JAVA 解密 AES256 加密
- c++ - 如何包含名称中包含`>`的头文件?