【发布时间】:2017-01-13 16:21:29
【问题描述】:
我有一个节点 js 服务器和一个 android 客户端。基本上我有两个身份验证选项:rest api + http basic 或会话。我更喜欢会话,因为将用户凭据存储到手机内存中似乎不是一个好主意。会话 ID 是临时的,因此存储它不会是安全问题。
我尝试了以下方法:在节点 js 上,我使用的是 express-session 中间件。在客户端,会话 ID 存储在变量 SID 中。对于每个请求,都会设置 cookie“connect.sid=SID”。如果响应包含 set-cookie,则 SID 设置为匹配 connect.sid。但是,这种方法不起作用。但是,我可以生成自己的 id 而根本不使用 express。
另外,我不了解快速会话的浏览器行为。我正在使用 https,如果这有什么不同的话。它工作正常,但首先,所有请求都会创建 2 个操作:一个使用 OPTIONS 方法,另一个使用实际操作。对选项请求的响应返回 set-cookie。在实际操作请求中,设置了cookie“connect.sid”。在每个请求中,id 都是相同的,但是服务器返回的每个 set-cookie 都有不同的 id,并且客户端发送的 id 与这些 id 中的任何一个都不匹配。有人可以解释发生了什么吗?
如今,使用移动应用程序对服务器进行身份验证是一种非常常见的情况。推荐的处理方式是什么(没有第三方)?
【问题讨论】:
标签: android node.js session authentication cookies