Reproducing this error in the sample next-auth project.
Issue with return validations.
[auth][error] CallbackRouteError: Read more at https://errors.authjs.dev#callbackrouteerror
[auth][cause]: JWTInvalid: JWTs must use Compact JWS serialization, JWT must be a string
at decodeJwt (webpack-internal:///(rsc)/./node_modules/jose/dist/node/esm/util/decode_jwt.js:15:15)
at handleOAuth (webpack-internal:///(rsc)/./node_modules/next-auth/node_modules/@auth/core/lib/actions/callback/oauth/callback.js:148:80)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async Module.callback (webpack-internal:///(rsc)/./node_modules/next-auth/node_modules/@auth/core/lib/actions/callback/index.js:47:41)
at async AuthInternal (webpack-internal:///(rsc)/./node_modules/next-auth/node_modules/@auth/core/lib/index.js:43:24)
at async Auth (webpack-internal:///(rsc)/./node_modules/next-auth/node_modules/@auth/core/index.js:130:34)
at async AppRouteRouteModule.do (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:10:32847)
at async AppRouteRouteModule.handle (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:10:39868)
at async doRender (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:1452:42)
at async responseGenerator (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:1822:28)
at async DevServer.renderToResponseWithComponentsImpl (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:1832:28)
at async DevServer.renderPageComponent (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:2259:24)
at async DevServer.renderToResponseImpl (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:2297:32)
at async DevServer.pipeImpl (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:959:25)
at async NextNodeServer.handleCatchallRenderRequest (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/next-server.js:281:17)
at async DevServer.handleRequestImpl (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/base-server.js:853:17)
at async /home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/dev/next-dev-server.js:371:20
at async Span.traceAsyncFn (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/trace/trace.js:153:20)
at async DevServer.handleRequest (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/dev/next-dev-server.js:368:24)
at async invokeRender (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/lib/router-server.js:230:21)
at async handleRequest (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/lib/router-server.js:408:24)
at async requestHandlerImpl (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/lib/router-server.js:432:13)
at async Server.requestListener (/home/devadmin/wslsrc/prft/nextjs/samples/02next-auth-app/node_modules/next/dist/server/lib/start-server.js:146:13)
[auth][details]: {
"provider": "microsoft-entra-id"
}
The example repository is maintained from a monorepo. Pull Requests should be opened against
nextauthjs/next-auth
.
Open Source. Full Stack. Own Your Data.
NextAuth.js is a complete open source authentication solution.
This is an example application that shows how next-auth
is applied to a basic Next.js app.
The deployed version can be found at next-auth-example.vercel.app
NextAuth.js is an easy to implement, full-stack (client/server) open source authentication library originally designed for Next.js and Serverless. Our goal is to support even more frameworks in the future.
Go to next-auth.js.org for more information and documentation.
NextAuth.js is not officially associated with Vercel or Next.js.
git clone https://github.com/nextauthjs/next-auth-example.git
cd next-auth-example
pnpm install
Copy the .env.local.example file in this directory to .env.local (which will be ignored by Git):
cp .env.local.example .env.local
Add details for one or more providers (e.g. Google, Twitter, GitHub, Email, etc).
A database is needed to persist user accounts and to support email sign in. However, you can still use NextAuth.js for authentication without a database by using OAuth for authentication. If you do not specify a database, JSON Web Tokens will be enabled by default.
You can skip configuring a database and come back to it later if you want.
For more information about setting up a database, please check out the following links:
-
Review and update options in
auth.ts
as needed. -
When setting up OAuth, in the developer admin page for each of your OAuth services, you should configure the callback URL to use a callback path of
{server}/api/auth/callback/{provider}
.
e.g. For Google OAuth you would use: http://localhost:3000/api/auth/callback/google
A list of configured providers and their callback URLs is available from the endpoint api/auth/providers
. You can find more information at https://authjs.dev/getting-started/providers/oauth-tutorial
- You can also choose to specify an SMTP server for passwordless sign in via email.
To run your site locally, use:
pnpm run dev
To run it in production mode, use:
pnpm run build
pnpm run start
Follow the Deployment documentation
Thanks to Vercel sponsoring this project by allowing it to be deployed for free for the entire NextAuth.js Team
ISC