我正在尝试通过NodeJS + Express REST api使用OAuth 2对第三方API进行身份验证。我们通过ReactJS webapp
进行此操作目前的流程是我们使用Fetch API从前端向我们的Express API发送请求,用户名为参数
此请求构建一个包含redirect_url的authUrl对象,然后以
响应返回res.redirect(authUrl);
当我们直接从浏览器启动此端点时,我们会被重定向到第三方API,并在验证用户成功后进行身份验证。
但问题在于我们尝试从前端向此端点发送请求。 我们将CORS标头添加到我们的Express应用程序中,以便我们可以访问此端点,但它仍然给出了以下错误:
Fetch API无法加载我们的ENDPOINT 。从“我们的ENDPOINT ”重定向到“第三方API ”已被CORS政策阻止:请求需要预检,不允许遵循跨源重定向。
当我们只执行 res.json(authUrl)而不是 res.redirect(authUrl)时,我们会检索包含该URL的正确响应。但重定向似乎不起作用。
我们尝试了不同的标题,但似乎找不到合适的解决方案。
所以我们想知道res.redirect()处理请求的方式有何不同?我们是否正确实施了OAuth流程?我们需要特定的标题吗?
欢迎任何帮助!
我们的流程摘要: