2017-05-04 12 views
0

私はトークンで許可作ってるんだと私は郵便配達してテストするとき、私はログインしてパスポートJWT「不正な」ノード

ログインコードをプロファイルするために行くの後に「無断」得続ける:

router.post('/authentication', (request, response, next) => { 
    const email = request.body.email; 
    const password = request.body.password; 

    userModel.getUserByEmail(email, (err, user) => { 
     if (err) throw err; 
     else { 
      if (!user) { 
       console.log('User does not exists!'); 
       response.json({ success: false, msg: 'User does not exists!' }); 
      } else { 
       userModel.comparePassword(password, user.password, (err, isMatch) => { 
        if (err) throw err; 
        else { 
         if (!isMatch) { 
          response.json({ success: false, msg: 'Password do not match!' }); 
         } else { 
          const token = jwt.sign(user, config.secret, { 
           expiresIn: 86400 // 1 day 
          }); 

          response.json({ 
           success: true, 
           token: "JWT " + token, 
           user: { 
            id: user._id, 
            name: user.name, 
            email: user.email, 
            role: user.role 
           } 
          }); 
         } 
        } 
       }); 
      } 
     } 
    }); 
}); 

passport.js

const JwtStrategy = require('passport-jwt').Strategy; 
const ExtractJwt = require('passport-jwt').ExtractJwt; 

const userModel = require('../models/usersModel'); 
const config = require('../config/database'); 

module.exports = function (passport) { 
    let opts = {}; 
    opts.jwtFromRequest = ExtractJwt.fromAuthHeader(); 
    opts.secretOrKey = config.secret; 

    passport.use(new JwtStrategy(opts, (jwt_payload, done) => { 

     userModel.getUserById(jwt_payload._doc._id, (err, user) => { 
      console.log(jwt_payload); 
      if (err) { 
       return done(err, false); 
      } 
      if (user) { 
       return done(null, user); 
      } else { 
       return done(null, false); 
      } 
     }); 
    })); 
} 

テストルート:

router.get('/profile', passport.authenticate('jwt', { session: false }), (request, response, next) => { 
    response.json({ user: request.user }); 
}); 

(PS:私はconsole.log(jwt_payload)を試しました。コンソールには何も表示されません。まだまだこれにこだわってください。私は初心者です。 )

答えて

0

jwtトークンを取得したら、すべての要求でそれを送信する必要があります。

ヘッダー:許可:JWT "トークン"

あなたはそれをやっていますか?

enter image description here

+0

はい。私はそれをやっている –

+0

何が起こるかを見るために有効期限を削除しようとしましたか? –

+0

ありがとう、あなたは私のままでした。それは今働く。どうもありがとうございました。 –

関連する問題