首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >饼干是如何在反应本机处理的?

饼干是如何在反应本机处理的?
EN

Stack Overflow用户
提问于 2018-04-12 10:36:46
回答 1查看 1.5K关注 0票数 0

我有一个带有节点js和passport.js的web应用程序,认证流程运行良好。我正在尝试开发一个react本机,并创建相同的身份验证流(使用passport.js)。

我更改了护照代码,以重定向回反应-本机应用程序(与链接),这是有效的。

所以流程是:

  1. 打开带有登录url (/auth/google)的浏览器
  2. 用户登录
  3. 重定向回本地应用程序
  4. 发送一个请求来验证用户是否已登录,但是用户没有登录,我想是因为cookie没有发送到服务器。

我还尝试添加到获取凭据“相同来源”或“包含”,但用户仍然没有登录。

我使用的一些代码:

代码语言:javascript
复制
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应该如何从浏览器传递到本地应用程序?

EN

回答 1

Stack Overflow用户

发布于 2018-04-12 13:21:35

React本机不是浏览器环境。它不会像浏览器一样自动处理cookie。

您必须使用一些支持cookie的请求库,如超剂

示例使用(来自超级代理文件):

代码语言:javascript
复制
const agent = request.agent();
agent
  .post('/login')
  .then(() => {
    return agent.get('/cookied-page');
  });

然后,来自agent的所有请求都将自动处理cookie (共享相同的cookie jar)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49794367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档