0

我想找出用户是否在中间件中通过了“jwt”的身份验证。有没有类似于passportjs的req.isAuthenticated()方法?

module.exports = function(app){
	return function(req, res, next){
		
        // How to implement the below step?
		var isAuthenticated = app.use(jwt({secret: app.get('jwtTokenSecret')}))
        
        if(isAuthenticated){
          // do some logic
        }
            
    }
}

4

1 回答 1

1

就在这里!

1)您可以使用 express-jwt 模块。查看https://github.com/auth0/express-jwt

2)你可以这样做:

  //get the authorization token from the request headers, or from a cookie
  if (req.headers && req.headers.authorization) {
    var parts = req.headers.authorization.split(' ');
    if (parts.length == 2) {
      var scheme = parts[0];
      var credentials = parts[1];

      if (/^Bearer$/i.test(scheme)) {
        token = credentials;
      }
    }
  }
  else if(req.cookies && req.cookies.token)
  {
    token = req.cookies.token;
  }
...
  jwt.verify(token, config.secrets.session, function(err, decoded) {
     //isAuthenticated is in here
  });
于 2015-10-25T15:39:22.890 回答