我有以下代码
export const useAxiosPrivate = () => {
const { data, status } = useSession()
const [accessToken, setAccessToken] = useState<string>()
useEffect(() => {
setAccessToken(() => data?.user.accessToken)
}, [data])
return axios.create({
baseURL: `${SERVER_LOCALHOST}/api/v1`,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${accessToken}`,
},
})
}
字符串
基本上,我不希望从session中提取的accesstoken为null,因为这将导致请求在authorization头中使用undefined
发布...我试过这个
export const useAxiosPrivate = () => {
const { data, status } = useSession()
const [accessToken, setAccessToken] = useState<string>()
useEffect(() => {
setAccessToken(() => data?.user.accessToken)
}, [data])
if (status == 'authenticated') {
return axios.create({
baseURL: `${SERVER_LOCALHOST}/api/v1`,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${accessToken}`,
},
})
}
}
型
但它似乎不起作用。任何帮助都将不胜感激:)
1条答案
按热度按时间bqujaahr1#
我不知道你是否已经解决了,希望如此。我做了一个类似的代码给你,但它不去周围的useEffect(因为它会使事情去brrr)无论如何,我做了提取,使它正确工作(现在)是:
字符串
我不知道为什么Next.js需要发出两个请求(第一个加载,第二个验证或未验证),因为第一个总是搞砸你的API调用,即使你在Provider上正确 Package 了你的代码。我的代码很容易解释。如果状态变为authenticated,那么它会调用API,数据可以保存在useState函数中,等等……还在尝试不同的方法来修复它或让它变得更好。。