我是MEAN堆栈的新手。 我正在使用jwt来验证api端点 '/ api / candidate'
在客户端/角度js服务中,我有以下条目
resumeFactory.get = function(candidateName) {
return $http.get('/api/candidates', {
headers: {
Authorization: 'Bearer '+ authenticationService.getToken()
});
};
服务器端的我有:
app.get('/api/candidates', auth, function (req, res) {
if (!req.payload._id) {
//user not logged in
console.log(req);
res.status(401).json({"message": "no user logged in from candidates"});
}
else {
Candidate.find({}, function (err, candidates) {
if (err) {
res.send(err);
}
res.json(candidates);
});
}
});
这很好用。即'auth'能够从标题
中提取令牌当我将所有内容更改为发布而不是获取时:
在客户端$http.post()
服务器端:
app.post()
我从jwt收到错误如下:
UnauthorizedError: No authorization token was found
有关正在发生的事情的任何建议?我可以使用获取,但我想知道为什么发布不起作用
答案 0 :(得分:1)
使用$http.post
配置是third argument,而不是第二(like in get
),因此请相应地更新您的参数:
$http.post('/url', { cool: postData }, {
headers: {
Authorization: 'Bearer '+ authenticationService.getToken()
}
});
更好的是,use an interceptor将Authorization标头添加到所有请求中。