Javascript 如何在expressjs中设置json web令牌的标题?
您好,我正在使用express framework在nodeJs中进行模拟身份验证。我正在使用passport jwt和jasonwebtoken进行身份验证。我创建了api,在postman上运行良好。但我卡在前端,无法在前端使用受保护的api。在postman中,我使用头发送令牌,它运行良好。但在前端不工作。如何从前端发送令牌并验证?? 我的代码是:Javascript 如何在expressjs中设置json web令牌的标题?,javascript,node.js,Javascript,Node.js,您好,我正在使用express framework在nodeJs中进行模拟身份验证。我正在使用passport jwt和jasonwebtoken进行身份验证。我创建了api,在postman上运行良好。但我卡在前端,无法在前端使用受保护的api。在postman中,我使用头发送令牌,它运行良好。但在前端不工作。如何从前端发送令牌并验证?? 我的代码是: app.post("/login", function(req, res) { if(req.body.name && r
app.post("/login", function(req, res) {
if(req.body.name && req.body.password){
var name = req.body.name;
var password = req.body.password;
}
var user = users[_.findIndex(users, {name: name})];
if( ! user ){
res.status(401).json({message:"no such user found"});
}
if(user.password === req.body.password) {
var payload = {id: user.id};
var token = jwt.sign(payload, jwtOptions.secretOrKey);
res.json({message: "ok", token: token});
} else {
res.status(401).json({message:"passwords did not match"});
}
});
如果令牌有效,则此post方法应重定向到此页面
app.get("/secret", passport.authenticate('jwt', { session: false }), function(req, res){
res.json("Success! You can not see this without a token");
});
jwToken来自何处??jwToken来自何处??您正在请求的正文或标题中发送用户名和密码?在body中,我使用body解析器从那里获取。您的问题解决了吗?您正在请求的正文或标题中发送用户名和密码?在body中,我使用body解析器从那里获取。您的问题解决了吗?
npm install cookie-parser
var cookieParser = require('cookie-parser')
app.use(cookieParser())
app.use(function (req, res, next) {
var cookie = req.cookies.jwtToken;
if (!cookie) {
res.cookie('jwtToken', theJwtTokenValue,
{ maxAge: 900000, httpOnly: true });
} else {
console.log('let's check that this is a valid cookie');
// send cookie along to the validation functions...
}
next();
});