【问题标题】:Nodejs, express, passport going mobileNodejs,快递,护照移动
【发布时间】:2015-04-11 09:28:15
【问题描述】:

目前我有一个网站,它使用 node.js、express.js 作为后端 API 服务器和 passport.js 进行身份验证。当用户使用他们的凭据登录时,服务器将启动一个会话并将用户会话保留在 req.user 或 req.session.passport.user 中(如果我说错了,请纠正我..)

稍后当你GET /loggedin 它只是res.json(req.user) 并给你用户信息。在客户端,我们可以在每个请求中简单地GET /loggedin 来检查登录状态和用户信息。

这适用于浏览器。但是当我尝试在移动设备上做同样的事情时,设备似乎无法与服务器建立会话。这意味着 GET /loggedin 未经授权返回 401。

所以我想知道我是否做错了什么?

【问题讨论】:

  • 您已使用 cookie 发出获取请求

标签: node.js authentication mobile express passport.js


【解决方案1】:

好的,我会在这里回答我自己的问题。

在您使用快速后端服务器登录后,服务器将向您发送响应,检查响应标头并验证是否有一个名为

的字段
"set-cookie"="connect.sid=s.xxxxxxxxxxxxxxxxxxxxxxxxxx"  

当浏览器在响应标头中看到“set-cookie”字段时,它会尝试将此信息写入 cookie。

接下来检查你的本地 cookie,看看是否有一个名为:connect.sid 的 cookie 的值为 s.xxxxxxxxxxxxxxxxxxxxxxxxxx,如果是,那么当你向服务器发送请求时,服务器很可能会知道你是谁。

浏览器应该是这样,但是移动设备不是那么智能,这意味着你必须手动获取这个字符串

"connect.sid=s.xxxxxxxxxxxxxxxxxxxxxxxxxx"  

放入请求标头,以便服务器可以使用您提供的令牌验证您的身份。

【讨论】:

  • 你是怎么做到的?
  • 我应该使用 https 来保护这个过程吗?
  • 如果你创建一个 https 服务器,那么你可以使用它,我认为它更安全。
猜你喜欢
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
  • 2012-09-13
  • 2015-01-19
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2016-12-24
相关资源
最近更新 更多