【发布时间】:2023-02-09 05:23:33
【问题描述】:
我的身份验证流程有问题,希望有敏锐眼光的人可以帮助我解决问题。我得到的错误是[next-auth][error][JWT_SESSION_ERROR] https://next-auth.js.org/errors#jwt_session_error Cannot read properties of undefined (reading 'jwt'),此后多次检查代码以查看可能出了什么问题。以下是我采取的步骤,以及如何重现错误:
- 如下所示设置和配置
[...nextauth].js file - 更新了需要凭据的提供商。
尝试登录进行测试时,我收到如下所示的错误消息。
frontend/pages/api/auth/[...nextauth].jsimport NextAuth from "next-auth"; import GoogleProvider from 'next-auth/providers/google'; import FacebookProvider from 'next-auth/providers/facebook'; import EmailProvider from 'next-auth/providers/email'; const options = { providers: [ GoogleProvider({ clientId: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, }), FacebookProvider({ clientId: process.env.FACEBOOK_CLIENT_ID, clientSecret: process.env.FACEBOOK_CLIENT_SECRET, }), ], pages: { signIn: '/signin', signOut: '/', error: '/auth/error', // Error code passed in query string as ?error= verifyRequest: '/auth/verify-request', // (used for check email message) newUser: '/firstpage', // New users will be directed here on first sign in (leave the property out if not of interest) }, secret: process.env.NEXTAUTH_SECRET, database: process.env.NEXT_PUBLIC_DATABASE_URL, session: { jwt: true, }, callbacks: { session: async (session, user) => { session.jwt = user.jwt; session.id = user.id; return Promise.resolve(session); }, jwt: async (token, user, account) => { const isSignIn = user ? true : false; if (isSignIn) { const response = await fetch( `${process.env.NEXT_PUBLIC_STRAPI_API_URL}/auth/${account.provider}/callback?access_token=${account?.accessToken}` ); const data = await response.json(); console.log("DATTA",data); token.jwt = data.jwt; token.id = data.user.id; } return Promise.resolve(token); }, }, }; const Auth = (req, res) => NextAuth(req, res, options); export default Auth;Error below[next-auth][error][JWT_SESSION_ERROR] https://next-auth.js.org/errors#jwt_session_error Cannot read properties of undefined (reading 'jwt') { message: "Cannot read properties of undefined (reading 'jwt')", stack: "TypeError: Cannot read properties of undefined (reading 'jwt')\n" + ' at Object.session (webpack-internal:///(api)/./pages/api/auth/[...nextauth].js:45:32)\n' + ' at Object.session (/Users/PATH-TO-FILES...)\n' name: 'TypeError' }
【问题讨论】: