使用jsonwebtoken在nodejs和angular cli中获取未经授权的方法

我正在build设一个应用程序使用nodejs和angular-cli我正在使用JsonWebToken来validation用户帐户。 但它总是返回未经授权的401。 在这里我的代码:

//validation码

router.post('/authenticate', (req, res, next) => { const username = req.body.username; const password = req.body.password; User.getUserByUsername(username, (err, user) => { if(err) throw err; if(!user){ return res.json({success: false, msg: 'User not found'}); } User.comparePassword(password, user.password, (err, isMatch) => { if(err) throw err; if(isMatch){ const token = jwt.sign(user.toJSON(), config.secret, { expiresIn: 604800 // 1 week }); res.json({ success: true, token: 'JWT '+token, //token:token, user: { id: user._id, name: user.name, username: user.username, email: user.email } }); } else { return res.json({success: false, msg: 'Wrong password'}); } }); }); }); 

//获取个人资料


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

//通过ID获取用户

  module.exports.getUserById=function(id,callback){ User.findById(id,callback); } 

//通过用户名获取用户

  module.exports.getUserByUsername=function(username,callback){ const query={username:username} User.findOne(query,callback); } 

//比较密码

  module.exports.comparePassword=function(candidatePassword,hash,callback){ bcrypt.compare(candidatePassword,hash,(err,isMatch)=>{ if(err) throw err; callback(null,isMatch); }); } 

你能解释我为什么吗?