authentication - 使用函数在 fetch 中检索令牌
问题描述
我在我的 Vuejs 3 应用程序中使用 fetch。我存储来自后端的令牌,以便在使用身份验证的路由上执行来自前端的任务。
我有一个名为 authHeader() 的函数,它检索前面本地存储的令牌,如下所示:
export default function authHeader() {
let user = JSON.parse(localStorage.getItem('user'));
if (user && user.token) {
return { 'x-access-token': user.token };
} else {
return {};
}
}
当我获取所有帖子时,这很好用:
async getAllPosts() {
const res = await fetch(`http://localhost:3000/api/publications`, {
method: 'GET',
headers: authHeader()
})
const posts = await res.json()
return posts
}
但是我很难发布,因为我正在添加内容类型并且无法弄清楚如何以及在何处放置我的 authHeader() 函数。我尝试给它“授权”作为键,但我在标题中得到一个带有“授权:[对象对象]”的 401。
这是代码:
async addPost(newPost) {
const res = await fetch('http://localhost:3000/api/publications', {
method: 'POST',
headers: {
'Authorization' : authHeader(),
'Content-type' : 'application/json'
},
body: JSON.stringify(newPost),
})
const data = await res.json();
this.posts = [...this.posts, data]
}
在这种情况下,我应该如何使用我的 authHeader() 函数将令牌传递给后端?
解决方案
推荐阅读
- python - 如何实现多个过滤器 Django?
- java - Java8 使用 lambda 表达式理解尾递归函数:
- php - PHP 登录部分无法使用 password_verify()
- angular - 长时间运行的角度应用程序后的空白页
- javascript - Rails 6 Public Js 更新/更改不会在部署后反映。它显示出旧的变化
- reactjs - 我找不到如何使用 useEffect 钩子和 axios 发出 HTTP POST 请求的示例
- javascript - 如何在本机反应中将参数发送到父组件
- microprocessors - 为什么 MOV M,M 无效,而 MOV A,A 在 8085 微处理器中有效
- spring - 带有 Spring Boot 和 localstack 的 AWS Secrets Manager
- android - 使用 Firebase 进行 Android 注册,但添加信息未保存到实时数据库