Expo Secure Store and RTK Query



我是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
},
}),

最新更新