使用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); }); }
你能解释我为什么吗?
- Angular 2 issue:typings:command not found
- mern项目部署在现场ssl
- 如何在生产环境中运行Node.js + Angular 4项目
- 使用Bunyan和Logentrieslogin打字稿
- 安装包后,Webpack无法编译错误
- 包括TypeScript编译上下文中的app.component.ts
- 如何将基于Angular CLI的ng2 / 4应用程序烧烤到Node / Express中,并具有单一回声系统来开发/运行/debugging服务器/客户端应用程序?
- 为什么会得到“TypeError:Reflect.getOwnMetadata不是一个函数”
- router_1.provideRouter在尝试运行Angular2 / NodeJS应用程序时不是函数