【问题标题】:node.js rest webservice authentication for client-server interaction用于客户端-服务器交互的 node.js REST Web 服务身份验证
【发布时间】:2013-10-13 08:56:14
【问题描述】:

我正在设计一种架构,其中 Web 界面是客户端(使用前端 js 框架开发),所有请求都路由到多个 Web 服务。

所有通信都将使用标准 HTTP 响应和 JSON 实体进行。

现在我面临着身份验证机制。 当然,我的服务会有多个用户,我需要限制对用户资源的访问。

用户将 1) 登录到 Web 客户端 (/admin),然后 2) 客户端 js 将代表用户对 Web 服务执行多个 AJAX 请求。

我应该在客户端/服务器之间创建一个持久会话,然后在每个请求旁边传递一些引用还是使用无状态方法对每个请求进行身份验证?如何在不给我的系统增加太多开销或复杂性的情况下验证当前用户的 Web 客户端请求?

我正在查看 passport-local 和 passport-localapikey,但我不太清楚是否应该授权我的客户或用户本身(这意味着在执行 Web 服务时我应该为所有用户只拥有一对凭据请求还是每个用户一对?)

非常感谢一个简单的示例(说明我不需要复制粘贴代码)。在这个阶段,我更喜欢引入较少复杂性但提供良好安全性以便能够非常快速地设置它的解决方案。

附言。我还可以考虑创建一个独特的服务处理身份验证,以便创建一个在客户端和服务器之间共享的通用 API,但这对我来说似乎有点过度设计。

谢谢,

【问题讨论】:

    标签: web-services node.js rest authentication connect


    【解决方案1】:

    如果您已经使用 Express 作为 Node.js 的框架,则可以使用它内置的会话处理。它能够使用任何类型的会话存储,包括内存、redis、mongo 等。

    这里有一个很好的例子:http://blog.modulus.io/nodejs-and-express-sessions

    【讨论】:

    • 是的,我在客户端网站(在 /admin 上响应的网站)和网络服务器都使用 express。那么,您的目的是否建议在用户登录时初始化的所有服务之间共享会话?我对吗?使用无状态交互是否会在您的体验中表现更好/最差?顺便说一句,我喜欢这个解决方案,因为它似乎部署起来更快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多