【发布时间】:2015-01-07 23:01:20
【问题描述】:
我的后端/服务器正在调用需要身份验证的远程 REST 服务 apples。流程如下:
- 使用 ExpressJS $http 模块调用
http://remote.service.com/api/login。如果身份验证成功,此服务会返回有效的 cookie - 使用 ExpressJS $http 模块调用
http://remote.service.com/api/apples。并发送从第 1 步检索到的 cookie
由于服务器连续多次调用apple 服务,我想避免每次都进行身份验证,并且想了解如何存储第 1 步中的 cookie 以便下次可以重用它。我应该使用node-redis 还是ExpressJS cookie-parser?我应该如何处理 cookie 过期?
编辑: Cookie 可以保存在全局变量中。请参阅下面的 cmets。
【问题讨论】:
-
这是为了响应客户的操作而完成的吗?或者这更像是一个维护脚本。如果它只是一个维护脚本,您可以将 cookie 存储在一个变量中,然后在后续迭代中,如果定义了该变量,则不要请求新的 cookie。
-
远程服务调用可以由用户触发,也可以按预定的时间间隔运行。这意味着 cookie 不应存储在用户会话中
-
而且,您是否有理由不能在第一次调用时请求 cookie 并将其存储在变量中,然后重复使用直到过期?
-
您是为每个用户使用不同的凭据,还是在应用范围内使用相同的凭据
-
是的,这就是我的建议。希望 401 请求相对较快。这样做会同时处理过期的 cookie,以及任何 cookie 被...提前销毁的机会。
标签: node.js cookies express node-redis