我有一个带有节点js和passport.js的web应用程序,认证流程运行良好。我正在尝试开发一个react本机,并创建相同的身份验证流(使用passport.js)。
我更改了护照代码,以重定向回反应-本机应用程序(与链接),这是有效的。
所以流程是:
我还尝试添加到获取凭据“相同来源”或“包含”,但用户仍然没有登录。
我使用的一些代码:
Linking.openURL("http://<my ip>:3000/auth/google"); //for log in
app.get('/auth/google/callback', //handle the log in with passport js
passport.authenticate('google', {
failureRedirect: '/login'
}), function(req, res) {
res.redirect('MyApp://login); // redirect back to native app
});
fetch("http://<my ip>:3000/api1", {credentials: /*"same-origin"*/"include"}) //get 401 -> user is not logged in我有遗漏什么吗?
饼干是如何在反应本机处理的?就像在网上一样吗?在重定向之后,cookie应该如何从浏览器传递到本地应用程序?
发布于 2018-04-12 13:21:35
React本机不是浏览器环境。它不会像浏览器一样自动处理cookie。
您必须使用一些支持cookie的请求库,如超剂。
示例使用(来自超级代理文件):
const agent = request.agent();
agent
.post('/login')
.then(() => {
return agent.get('/cookied-page');
});然后,来自agent的所有请求都将自动处理cookie (共享相同的cookie jar)。
https://stackoverflow.com/questions/49794367
复制相似问题