交易令牌的用户名和密码

时间:2016-05-19 16:31:41

标签: node.js mongodb passport.js

我有一个Node.js应用程序,它在MongoDB前面提供了几个不同的路由。我需要确保只有经过身份验证的请求才能访问这些路由。

理想情况下,我想设置它以便用户名和密码进入API,并在响应中我们给它们一个令牌。我不介意自己管理MongoDB中的令牌,但我需要确保我们提供的令牌可以进行经过身份验证的请求。我不想强迫用户每次都发送他们的凭证,只是令牌。

我已经阅读了几天关于护照的信息,以及目前 307 的策略。我在这里描述了哪种策略?

1 个答案:

答案 0 :(得分:1)

  

我在这里描述哪种策略?

您正在描述Local Strategy

根据他们的描述:

  

此模块允许您使用Node.js应用程序中的用户名和密码进行身份验证。

     

我不想强迫用户每次都发送他们的凭据,只是令牌。

Passport身份验证策略只提供了各种方法来验证(或简单地说登录)用户,而不是如何持久登录。登录持久性通常通过用户会话完成。

您可以解决此问题的一种方法是将本地策略与express session middleware结合起来。两者的结合允许一个相当简单的auth系统,要求用户登录一次然后继续会话。

  

在典型的Web应用程序中,用于验证用户的凭据只会在登录请求期间传输。如果验证成功,将通过用户浏览器中设置的cookie建立和维护会话。

     

每个后续请求都不包含凭据,而是包含标识会话的唯一cookie。为了支持登录会话,Passport将对会话进行序列化和反序列化用户实例。

PassportJS docs举例说明如何实现这一目标。