javascript - 使用 Vue.JS 和 Node.JS 时未定义 Axios 授权标头
问题描述
将授权标头设置到我的 axios 实例时出现问题。
这是我在http://localhost:8080上运行的 Vue.JS 应用程序中的代码:
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token
axios.get(`/users/email/${myemail}`).then(response => {
var user = response.data.result[0]
...
});
这是我在http://localhost:3000上运行的 Node.JS 服务器代码示例:
// Add headers
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-type, Accept, X-Access-Token, X-Key, Authorization');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
和 :
app.use((req, res, next) => {
var token = req.headers['authorization'];
if (token) {
jwt.verify(token, "mysecret", (err, decod) => {
if (err) {
res.status(403).send({message: "Access forbidden, wrong token."});
} else {
req.decoded = decod;
next();
}
});
} else {
res.status(403).send({message: "Access forbidden, no token provided."});
}
});
req.headers['authorization'] 始终未定义...但是当我通过 Postman 执行获取请求时,授权标头已正确设置,并且我可以在我的 Node.JS 服务器上获取令牌。
我不明白我的错误在哪里......非常感谢您的帮助!
解决方案
您的 axios 标头键是“授权”,但在节点中您获得“授权”。
javascript 对象键区分大小写:D
推荐阅读
- html - 如何将组件对齐在整个页面的中心?
- hardware - 如果我们无法区分它们,为什么 Vulkan 中队列族中的队列需要优先级?
- python - 在我的 django 应用程序中,我在哪里实现这个 get_client_ip() 函数?
- python - 如何在keras的LSTM中输入排名
- angular - DocuSign:对于 Angular 应用程序 - 为什么 OAuth 重定向 URL 不能包含片段指示符 (#)?
- grails - Grails RabbitMQ 在一次有很多消息时丢失消息
- php - 使用ajax加密url
- python - 从 python 数据框列表中删除重复项
- java - 如何在 Ubuntu 18.04 上安装 Oracle Java 8?
- jquery - 如何在 jquery 验证器中使用 submitHandler 作为字符串