[英]How cookies are handled in react-native?
我有一个使用节点js和passport.js运行的Web应用程序,并且身份验证流程运行良好。 我正在尝试开发一个本机反应,并进行相同的身份验证流程(使用passport.js)。
我更改了护照代码,以重定向回react-native应用程序(具有Linking),并且它可以正常工作。
因此流程为:
我还尝试将提取凭证添加为“ same-origin”或“ include”,但用户仍未登录。
我使用的一些代码:
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? 就像在网络上吗? 重定向后应如何将Cookie从浏览器传递到本机应用程序?
React Native不是浏览器环境。 它不会自动处理浏览器之类的Cookie。
您必须使用一些支持cookie的请求库,例如superagent 。
用法示例(来自superagent文档 ):
const agent = request.agent();
agent
.post('/login')
.then(() => {
return agent.get('/cookied-page');
});
然后,来自agent
所有请求将自动处理cookie(共享同一个cookie jar)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.