小编saw*_*wim的帖子

Node+react 应用程序中使用护照进行 facebook 身份验证时出现 CORS 错误

我正在使用 Node 开发简单的 Web 应用程序,并使用 Facebook 身份验证进行反应。我还遵循了一些有关该主题的教程,但在这些实现中,客户端和后端位于同一服务器上。在这里,我的后端服务器在 localhost:5000 上运行,并在 localhost:3000 上运行应用程序。在react package.json中有到后端的代理,因此客户端知道如何调用api。

\n\n

当我单击“使用 Facebook 登录”按钮时,我将重定向到 Facebook 页面,在其中我授权应用程序并接收我的客户端应用程序配置文件 ID 和其他请求的用户信息。然而,当我将用户信息发送到后端服务器时,我可以在控制台中看到以下错误:

\n\n
\n

跨源请求被阻止:同源策略不允许读取远程资源https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Fapi%2Fauth%2Ffacebook% 2Fcallback&client_id=1617633901657669。(原因:CORS 标头 \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 丢失)。

\n
\n\n

下面你可以看到:

\n\n
\n

类型错误:尝试获取资源时出现网络错误。\n [了解更多]

\n
\n\n

Facebook 应用程序设置:

\n\n
    \n
  1. 在此输入图像描述
  2. \n
  3. 在此输入图像描述
  4. \n
  5. 在此输入图像描述
  6. \n
\n\n

OAuth 路由器:

\n\n
const router = require(\'express\').Router();\nconst passport = require(\'../config/facebook-passport\');\n\nrouter.get(\'/facebook\', passport.authenticate(\'facebook\'));\n\nrouter.get(\'/facebook/callback\',\n    passport.authenticate(\'facebook\', { failureRedirect: \'/login\' }),\n    function(req, res) {\n        console.log(\'Successful authentication, redirect home\');\n        res.redirect(\'/\');\n    });\n\nmodule.exports = router;\n
Run Code Online (Sandbox Code Playgroud)\n\n

护照脸书:

\n\n
const passport = require(\'passport\');\nconst …
Run Code Online (Sandbox Code Playgroud)

node.js facebook-oauth reactjs passport-facebook passport.js

5
推荐指数
1
解决办法
1633
查看次数