如何将Facebook身份验证添加到我的反应应用程序?
我使用express作为后端。我在后端实施了Facebook身份验证。如何将Facebook身份验证添加到我的反应应用程序?
router.get('/login/facebook', passport.authenticate('facebook',{scope:['email']}));
router.get('/login/facebook/callback',
passport.authenticate('facebook',{
successRedirect : '/home',
failureRedirect:'/'
})
);
现在我想通过我的反应应用程序调用它,以便当用户登陆主页时,首先他应该通过Facebook进行身份验证,然后才能看到主页。我怎样才能做到这一点 ?
我试过使用react-router,但我不明白如何使用react-router调用后端。使用fetch命令 我也取/登录/ Facebook的:
componentDidMount(){ fetch("127.0.0.1:3001/login/facebook");
但它给了我CORS错误。
我的反应应用程序是在127.0.0.1:3000和表示服务器在127.0.0.1:3001。
回答:
有几种选择:
如果您正在使用的WebPack开发服务器,你可以设置一个代理您的API。请参阅here
您可以在开发过程中临时禁用cors验证。请参阅here
回答:
如果此问题仅在开发模式下,那么Daniel的答案是正确的。
无论如何,我建议避免直接从:3000应用程序调用:3001 API。这是我会做的。
我将编辑取调用如下,
componentDidMount(){ fetch("/login/facebook");
}
此呼叫将由服务于反应应用后端被接收。 现在有案件,
案例1:您的文件服务应用程序将具有能够将请求转发给一个API代理方法。例如阅读here
案例2这是我推荐方法。我只需在3000服务器中编写身份验证逻辑,并只使用:3001 API来处理应用程序的业务逻辑。
案例3:如果你有一个后端应用程序(3000),说使用expressJs写的,你可以将请求转发至:3001 API。下面是一个示例代码,
client.send({ method: req.method,
path: req.url,
data: req.body,
params: req.params
}).then((response) => {
// Something
}).catch((err) => {
// Handle error
});
这里客户端使用所述request
模块,以使HTTP调用的模块。 您可以将上述调用作为快速中间件来实现,以用于所有HTTP调用。
以上是 如何将Facebook身份验证添加到我的反应应用程序? 的全部内容, 来源链接: utcz.com/qa/260693.html