我正在使用React Native,其中axios从我的express api返回发布详细信息。我使用jwt验证用户请求。JWT令牌位于状态变量中,并传递给头授权值。但它仅在第一次加载时有效,当我尝试重新加载应用程序时,它显示[AxiosError:请求失败,状态代码401]如果我尝试向axios添加数据,它会返回网络错误。我通过Postman确认了我的API正常,它工作正常并返回数据。为了再次重新检查,我尝试硬编码为头值,它工作正常。但如果我从状态或上下文变量传递,它会抛出401错误。再次检查CORS和Express上的所有内容,它都很好。我不知道什么快来帮我。
BASE_API_URL = http://192.168.1.2:3000上述URL运行Express
状态变量不起作用
const fetchPosts = async () => {
//console.log(userGlobalToken)
await axios({
method: 'GET',
url: `${BASE_API_URL}/posts/all`,
headers: {
'Get-Auth': userJwtToken
}
})
.then((response) => {
setPostsData(response.data)
})
.catch((err) => console.log(err))
.finally(() => {
setPostLoading(false)
setRefreshing(false)
})
}
这个很好用!
const fetchPosts = async () => {
//console.log(userGlobalToken)
await axios({
method: 'GET',
url: `${BASE_API_URL}/posts/all`,
headers: {
'Get-Auth': "<jwt token here>"
}
})
.then((response) => {
setPostsData(response.data)
})
.catch((err) => console.log(err))
.finally(() => {
setPostLoading(false)
setRefreshing(false)
})
}
如果你仍然认为是express的问题,我检查了AJAX在正常的网络中工作正常。我控制台日志检查令牌是否存在于状态变量中,它被设置。我还检查了其他axios请求,其中未经授权抛出网络错误或404。
先谢了!
1条答案
按热度按时间toe950271#
401错误:您的userJwtToken已过期或无效。401是“未授权”。沿着多长时间您的认证自动代码更改?