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 に答える