为什么我需要使用带有jsonwebtoken的passport包来在NodeJs Web API上应用基于令牌的身份验证?

时间:2017-02-17 20:28:26

标签: node.js authentication express

护照,护照-jwt,jsonwebtoken,express-jwt ..等等

我很困惑,何时使用哪个以及哪个用哪个?

2 个答案:

答案 0 :(得分:5)

我不久前正在构建自己的MEAN应用程序并遇到了同样的问题。这很好地清理了它。

https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/

基本上,您使用jsonwebtoken生成令牌。这将返回给客户,客户每次发出请求时都会发送给客户。这通常在auth标头中传递。 Passwort-jwt检查此auth标头并验证其有效性。如果它无效,则返回401,否则填充req.user。

答案 1 :(得分:2)

passport-jwt:
在此策略中,服务器验证用户凭据并返回加密的用户对象,即令牌。客户端可以使用cookie,本地存储或其他机制来保存令牌。然后在每个用户请求上验证令牌并继续请求。

express-jwt:
您可以将其用作多租户目的,例如

  1. 验证用户凭据并加密护照-jwt等数据。 https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens
  2. OAuth:您可以使用密钥创建jwt令牌并进行验证。 https://auth0.com/learn/json-web-tokens/