我用React,Express,MongoDB制作web应用程序。
并且,我想通过头部传递jwt令牌。
但是,我通过了它,得到401错误(未授权)。
在登录actions.js中:
export function login(username, password) {
return function(dispatch) {
axios
.post(`${API_URL}/auth/login`, { username, password })
.then(res => {
dispatch(loginSuccess(res.data, username));
const token = res.data.token;
axios.defaults.headers.common["Authorization"] = token;
history.push("/");
})
.catch(err => {
if (err.response.status === 401) {
dispatch(loginFailure(err));
}
});
};
}
并且,在服务器的我的post.js中:
getToken = function(headers) {
if (headers && headers.authorization) {
var parted = headers.authorization.split(" ");
if (parted.length === 2) {
return parted[1];
} else {
return null;
}
} else {
return null;
}
};
...
// Save Post
router.post("/", passport.authenticate("jwt", { session: false }),
function(
req,
res,
next
) {
var token = getToken(req.headers);
if (token) {
Post.create(req.body, function(err, post) {
if (err) return next(err);
res.json(post);
});
} else {
return res.status(403).send({ success: false, msg: "Unauthorized." });
}
});
我该如何修复它?+登录就是成功
发布于 2018-07-30 15:24:48
包含您的令牌作为授权密钥,如下所示。
axios.post(url,data, {
headers: {
'authorization': your_token,
'Accept' : 'application/json',
'Content-Type': 'application/json'
}
})
.then(response => {
// return response;
})
.catch((error) => {
//return error;
});
发布于 2018-07-30 11:46:35
尝试res.header( 'x-auth‘,token).send()’x-auth‘可以是任何值。上面用来在头部设置token
https://stackoverflow.com/questions/51586458
复制相似问题