我是react/mobile开发的新手,想知道安全存储令牌的最佳方法。官方文档指向世博安全商店,我现在正试图实现。
我也使用reduxtoolkits RTK查询我的API请求,我的问题是我如何检索我存储的令牌值,并在准备头部分使用它来创建一个承载令牌,可以在请求中成功使用。
现在我得到一个对象错误:
错误:对象作为React子对象无效(发现:对象具有键{_U, _V, _W, _X})。如果您打算呈现子元素的集合,请使用数组。
这是目前为止我的代码…
const getToken = async (key) => {
try {
await SecureStore.getItemAsync(key).then(result=> result);
} catch (error) {
console.log("Error");
}
};`
``
RTK slice
baseQuery: fetchBaseQuery({
baseUrl: 'http://example.com/api',
prepareHeaders: (headers, { getState }) => {
const token = getToken('userToken')
// If we have a token set in state, let's assume that we should be passing it.
if (token) {
headers.set('authorization', `Bearer ${token}`)
}
return headers
},
}),
Where am i going wrong?
我认为你需要等待async函数,而不是尝试发送一个承诺作为一个头:
baseQuery: fetchBaseQuery({
baseUrl: 'http://example.com/api',
prepareHeaders: async (headers, { getState }) => {
const token = await getToken('userToken')
// If we have a token set in state, let's assume that we should be passing it.
if (token) {
headers.set('authorization', `Bearer ${token}`)
}
return headers
},
}),