forms - 如何读取外部表单重定向?
问题描述
我目前正在开发一个 VueJS 项目,我刚刚使用我们的国民身份证实施了由葡萄牙政府设计的 SSO 系统,但我在解析来自外部身份验证服务器的响应时遇到了一些问题。
这是我的问题的一个小 GIF:https ://gfycat.com/threadbarepossiblebagworm
工作流程如下:
- 用户单击验证。
- 用户选择“通过身份证登录”
- 用户被重定向到外部身份验证提供程序
- 用户使用他的身份证登录。
- 然后,外部身份验证提供程序将 POST 方法发送回所提供的回调 URL。
- 我读取/解析回调
问题出在第 6 步... 外部身份验证提供程序使用我提供的回调 URL,但出现此错误
Cannot POST /users/callback
如果这是一个典型的 NodeJS,我可以使用
router.post('/callback' ....)
有没有办法可以在 VueJS 中读取该回调?
我发现了这个类似的问题https://forum.vuejs.org/t/cannot-post-handling-form-post-from-an-external-site/41194/1但没有人设法为他提供解决方案。
提前致谢!
编辑:在你问之前,是的,'/users/callback' 是在 router.ts 上定义的,如果我去那个路由它确实会显示一个页面。它只是不是为 POST 方法设计的 afaik
解决方案
Vue 是一个前端框架,这意味着默认情况下它不能直接访问 POST 请求。
对于生产,您是否正在运行诸如“npm run build”之类的 npm 脚本,然后提供出现在网络服务器上的“dist”文件夹中的文件,比如 Apache?然后你必须响应 Apache 中的 POST 请求。
然后,您可以将他们的身份验证结果存储在比 Vue“更靠近后端”的地方,并让 Vue 使用 vuex 获取它。
推荐阅读
- javascript - 材料ui下拉验证?
- ios - iOS 在 iOS 13.5.1 中停止将应用程序移动到暂停状态(继续在后台运行)
- qt - 在对话框中使用虚拟键盘的 QML 问题
- oracle - Oracle SQL 将列粘贴到变量中
- mysql - LIKE 查询不适用于 WHERE 和多个 OR WHERE
- git - 如何再次制作 gitattribute `unspecified`?
- python - 在机器人框架中检查状态码是 200 或 202
- mysql - 复制带有约束mysql存储过程的表结构
- c - 如何仅使用 2 个循环来编码此模式?
- swift - SBApplication没有通讯