如何解决如何将我的 JWT 令牌附加到每个 axios 调用?
我正在开发我的第一个 nextjs 应用程序。我正在使用 axios 实例来处理对后端的调用
export const httpClient = axios.create({
baseURL: `${process.env.BASE_URL}`,headers: {
'Content-Type': 'application/json',Accept: 'application/json',},});
我也在使用 next-auth 来处理我的身份验证和授权
const callbacks = {
async jwt(token,user) {
if (user) {
token.accessToken = user.access_token;
}
return token;
},async session(session,token) {
session.accessToken = token.accessToken;
return session;
},};
对身份验证端点的调用工作正常。如果我 console.log()
api 响应,我可以看到返回的 JWT 令牌。
我现在尝试将该 JWT 令牌附加到每个 axios 请求,但调用 await getSession()
始终是 null
。我写了以下请求拦截器
httpClient.interceptors.request.use(
async (config) => {
const session = await getSession();
if (session) { // this never evaluates to true. Session is always `null`
console.log(session);
config.headers.Authorization = `Bearer ${session?.accessToken}`;
}
return config;
},(error) => {
return Promise.reject(error);
},);
按照文档,我用
包裹了我的_app.js
<Component>
<Provider session={pageProps.session}>
<Component {...pageProps} />
</Provider>
知道我接下来可以尝试什么吗?
编辑:
我在代码的另一部分(在 nextjs 前端)调用 const [session,loading] = useSession();
并且一切似乎都在工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。