我正在尝试将使用nuxt构建的前端仪表板与使用Flask构建的API后端集成在一起。前端和后端都必须在客户端的封闭网络上的同一本地服务器上运行。客户端希望使用Flask-Security来对用户进行身份验证,但这是问题开始的地方。 最初,客户端希望在flask-security templates文件夹中提供静态页面。
但是,由于页面本身需要API的数据才能加载(使用nuxt的asyncData),因此在尝试使用“ npm run generate” /“ npm run build”来部署前端文件时遇到了问题我可以使前端与后端协同工作的唯一方法是,将前端部署在服务器端渲染中,并在与运行API的本地主机端口不同的本地主机端口上本地运行(npm run start)。 到目前为止,它一直在工作,但是问题在于,现在客户端希望使用Flask-Security向系统添加登录名,但是我遇到了尝试这样做的砖墙...
所以,我有几个问题-
1-您认为这是实现此目标的理想方法吗?能做到吗
2-您能否建议采用其他方法/设置来整合正面和背面?在这种情况下,最佳做法是什么?应该使用Flask还是其他方式完成登录?在前端还是后端?
3-您是否建议其他登录方法? (请注意,到目前为止,前端尚未与vue商店一起运行,我认为这是通过nuxt进行身份验证所必需的...)
答案 0 :(得分:0)
我使用Vue(不是SSR),并且积极维护烧瓶安全性的分支-主要是为了使其与现代单页应用程序一起使用而进行改进。 我在这里有关于将fork与单页应用程序一起使用的文章: https://flask-security-too.readthedocs.io/en/latest/spa.html
但是直接回答您的问题-我会将您的nuxt / vue前端与后端完全分开-可以并且应该分别开发和包装它们-即使它们都在同一个容器中运行。 我的dockerfile下载了我的UI仓库,运行npm build并将整个结果复制到/ var / www。 我使用nginx提供静态内容,并将/ api路由到我的flask / uwgi后端。 UI仅通过JSON API进行通信-绝不存在任何形式。因此,您将使用Flask-Security来管理用户(注册等)及其端点/视图授权保护-但不会使用Flask-Securitys html表单。
对于开发-在没有nginx的情况下-需要一些技巧来确保重定向以及在与前端不同的端口(本地)上运行的后端之间的正确反弹。这个“窍门”是Flask-Security中我分支中的一个新配置变量,名为:SECURITY_REDIRECT_HOST,它将把重定向URL重写到另一个端口。