Reputation: 63
Hi Hi I hope one of you can help me. Currently I doubt the authentication of the user via the getServerSession metho of next-auth.
I use the login via the magic link with the prism adapter. In the frontend the session works and also in the DB the sessions are stored clean.
Only the method does not work and returns this error:
[next-auth][error][JWT_SESSION_ERROR]
https://next-auth.js.org/errors#jwt_session_error Invalid Compact JWE {
message: 'Invalid Compact JWE',
stack: 'JWEInvalid: Invalid Compact JWE\n' +
' at compactDecrypt (webpack-internal:///(rsc)/./node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js:18:15)\n' +
' at jwtDecrypt (webpack-internal:///(rsc)/./node_modules/jose/dist/node/cjs/jwt/decrypt.js:10:61)\n' +
' at Object.decode (webpack-internal:///(rsc)/./node_modules/next-auth/jwt/index.js:44:52)\n' +
' at async Object.session (webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/session.js:25:34)\n' +
' at async AuthHandler (webpack-internal:///(rsc)/./node_modules/next-auth/core/index.js:161:37)\n' +
' at async getServerSession (webpack-internal:///(rsc)/./node_modules/next-auth/next/index.js:125:21)\n' +
' at async GET (webpack-internal:///(rsc)/./src/app/api/users/route.ts:13:21)\n' +
' at async eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:254:37)',
name: 'JWEInvalid'
}
Session null
Also my console log shows me null every time...
Code for auth/[...nextauth]/route.ts:
import { PrismaClient } from "@prisma/client";
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import NextAuth from "next-auth";
import type { NextAuthOptions } from "next-auth";
import GithubProvider from "next-auth/providers/github";
import EmailProvider from "next-auth/providers/email";
const prisma = new PrismaClient();
export const authOptions: NextAuthOptions = {
adapter: PrismaAdapter(prisma),
providers: [
// GithubProvider({
// clientId: process.env.GITHUB_ID!,
// clientSecret: process.env.GITHUB_SECRET!,
// }),
EmailProvider({
server: {
host: process.env.EMAIL_SERVER_HOST,
port: process.env.EMAIL_SERVER_PORT,
auth: {
user: process.env.EMAIL_SERVER_USER,
pass: process.env.EMAIL_SERVER_PASSWORD,
},
},
from: process.env.EMAIL_FROM!,
maxAge: 24 * 60 * 60,
}),
],
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };
I hope very much that someone here knows a solution I come because really no further :(
Upvotes: 1
Views: 1621
Reputation: 21
I had the same problem, I solved to add
session: {
strategy: 'jwt'
},
in authOptions after providers
Upvotes: 2