我正在使用express.js,带有jwt策略的护照,当然还有jsonwebtoken用于node.js。
所以,目前,我已经设法实现了一个服务器端逻辑,它允许用户登录并返回jwt令牌。
之后,当我在头文件中使用相应的令牌执行get请求时,它会正确验证jwt令牌并显示信息。代码如下:
var jwt = require('jsonwebtoken');
function createToken(user) {
return jwt.sign(user, 'shhhhh', {
issuer: "accounts.examplesoft.com"
});
}
var opts = {};
opts.secretOrKey = 'shhhhh';
opts.issuer = "accounts.examplesoft.com";
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
console.log(jwt_payload);
User.findById(jwt_payload.id, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
done(null, user);
} else {
done(null, false);
}
});
}));
app.post('/jwt_login', function(req, res) {
User._loginJwt({
email: req.body.email,
password: req.body.password
}, function(err, user) {
if (err) res.json(err);
else res.json(createToken(user));
});
});
app.get('/jwt_test', passport.authenticate('jwt', {
session: false
}), function(req, res) {
res.json(true);
});
现在我正在尝试做一个客户端页面。我正在使用angularjs,并且有很多jwt库用于angularjs,或者更确切地说,客户端。现在我有一系列问题:
感谢您的回复!
答案 0 :(得分:2)
请参阅此处了解可能在您的令牌中的声明:
http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#rfc.section.4