到目前为止,我一直将令牌存储在一个仅限 http 的 cookie 中,但是每次使用 fetch() 时,我都必须手动传递令牌,并且想要创建一个辅助函数,在其中我使用一些默认配置设置 fetch 并包含令牌,但问题是我如何访问令牌?问题来了:
我有一个具有以下功能的文件:
function getUserById(id,token){
return fetch(url/getUser/id,{method:"GET",headers:{Authorization:`Bearer ${token}})
}
现在,当我调用 getUserById
时,我从 redux 商店访问令牌并将其传递给它,但是如果我尝试从辅助函数内的 redux 商店访问令牌,因为访问 redux 商店它是异步的,请求失败,因为令牌没有不存在。
export default function authorizedFetch(url, config) {
const { token } = store.getState().user;
console.log(token);
return fetch(url, { ...config, headers: { ...config.headers, Authorization: `Bearer ${token}`, "Content-Type": "application/json" } });
}
我该如何管理?