首页 > 解决方案 > 如何读取外部表单重定向?

问题描述

我目前正在开发一个 VueJS 项目,我刚刚使用我们的国民身份证实施了由葡萄牙政府设计的 SSO 系统,但我在解析来自外部身份验证服务器的响应时遇到了一些问题。

这是我的问题的一个小 GIF:https ://gfycat.com/threadbarepossiblebagworm

工作流程如下:

  1. 用户单击验证。
  2. 用户选择“通过身份证登录”
  3. 用户被重定向到外部身份验证提供程序
  4. 用户使用他的身份证登录。
  5. 然后,外部身份验证提供程序将 POST 方法发送回所提供的回调 URL。
  6. 我读取/解析回调

问题出在第 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

标签: formsvue.jsredirectpost

解决方案


Vue 是一个前端框架,这意味着默认情况下它不能直接访问 POST 请求。

对于生产,您是否正在运行诸如“npm run build”之类的 npm 脚本,然后提供出现在网络服务器上的“dist”文件夹中的文件,比如 Apache?然后你必须响应 Apache 中的 POST 请求。

然后,您可以将他们的身份验证结果存储在比 Vue“更靠近后端”的地方,并让 Vue 使用 vuex 获取它。


推荐阅读