如果授权头是通过React中的状态或上下文变量设置的,Axios返回401



我正在React Native上工作,其中axios从我的express api返回post详细信息。我使用jwt来验证用户请求。JWT令牌位于状态变量中,传递给报头授权值。但它只在第一次加载时工作,当我尝试重新加载应用程序时,它显示[AxiosError:请求失败,状态码401]如果我试图向axios添加数据,它会返回网络错误。我通过邮差确认我的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的问题,我在正常的web中检查了AJAX,它工作得很好。我控制台日志检查令牌是否存在于状态变量中,并且它已设置。我还检查了其他axios请求,其中未经授权它会抛出网络错误或404。

提前感谢!

401错误:过期或无效的userJwtToken。401是"未授权"。您的授权自动代码何时更改?

相关内容

  • 没有找到相关文章

最新更新