-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Labels
bugSomething isn't workingSomething isn't workingtriageUnseen or unconfirmed by a maintainer yet. Provide extra information in the meantime.Unseen or unconfirmed by a maintainer yet. Provide extra information in the meantime.
Description
Environment
System:
OS: Windows 11 10.0.22631
CPU: (24) x64 AMD Ryzen 9 3900X 12-Core Processor
Memory: 25.36 GB / 47.93 GB
Binaries:
Node: 20.11.0 - C:\Program Files\nodejs\node.EXE
npm: 10.2.4 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: Chromium (121.0.2277.98)
Internet Explorer: 11.0.22621.1
npmPackages:
@auth/prisma-adapter: ^1.2.1 => 1.2.1
next: 14.1.0 => 14.1.0
next-auth: ^5.0.0-beta.5 => 5.0.0-beta.5
react: ^18 => 18.2.0
Reproduction URL
https://github.com/AmphibianDev/todo-app/tree/main
Describe the issue
The error occurs only when authorize
returns null, if it's returning a user, it works.
How to reproduce
auth.config.ts
import { NextAuthConfig } from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
export default {
providers: [
CredentialsProvider({
async authorize(credentials, req) {
return null;
},
}),
],
} satisfies NextAuthConfig;
auth.ts
import NextAuth from "next-auth";
import authConfig from "@/auth.config";
import prisma from "@/lib/prisma";
import { PrismaAdapter } from "@auth/prisma-adapter";
export const {
handlers: { GET, POST },
auth,
signIn,
signOut,
} = NextAuth({ adapter: PrismaAdapter(prisma), session: { strategy: "jwt" }, ...authConfig });
Error:
[auth][error] CredentialsSignin: Read more at https://errors.authjs.dev#credentialssignin
at Module.callback (C:\Users\Work\Desktop\todo-app\.next\server\chunks\node_modules_f27a4e._.js:2982:30)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Module.AuthInternal (C:\Users\Work\Desktop\todo-app\.next\server\chunks\node_modules_f27a4e._.js:3597:24)
at async Module.Auth (C:\Users\Work\Desktop\todo-app\.next\server\chunks\node_modules_f27a4e._.js:3722:29)
at async Module.signIn (C:\Users\Work\Desktop\todo-app\.next\server\chunks\node_modules_edd83f._.js:3286:17)
at async logInAction (C:\Users\Work\Desktop\todo-app\.next\server\chunks\[root of the server]__19aaaf._.js:351:9)
at async C:\Users\Work\Desktop\todo-app\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:39:406
at async t4 (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:38:6379)
at async rk (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\compiled\next-server\app-page.runtime.dev.js:39:25934)
at async doRender (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:1394:30)
at async cacheEntry.responseCache.get.routeKind (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:1555:28)
at async DevServer.renderToResponseWithComponentsImpl (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:1463:28)
at async DevServer.renderPageComponent (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:1856:24)
at async DevServer.renderToResponseImpl (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:1894:32)
at async DevServer.pipeImpl (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:911:25)
at async NextNodeServer.handleCatchallRenderRequest (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\next-server.js:271:17)
at async DevServer.handleRequestImpl (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\base-server.js:807:17)
at async C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\dev\next-dev-server.js:331:20
at async Span.traceAsyncFn (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\trace\trace.js:151:20)
at async DevServer.handleRequest (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\dev\next-dev-server.js:328:24)
at async invokeRender (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\lib\router-server.js:163:21)
at async handleRequest (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\lib\router-server.js:342:24)
at async requestHandlerImpl (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\lib\router-server.js:366:13)
at async Server.requestListener (C:\Users\Work\Desktop\todo-app\node_modules\next\dist\server\lib\start-server.js:140:13)
Expected behavior
Rejecting the singin attempt without throwing a server error in the console, and showing the user "Invalid credentials"
"use server";
import { signIn } from "@/auth";
import { $LogInSchema, LogInSchema } from "@/lib/validation";
import { DEFAULT_LOGIN_REDIRECT } from "@/routes";
import { AuthError } from "next-auth";
export async function logInAction(formData: LogInSchema) {
const validatedFields = $LogInSchema.safeParse(formData);
if (!validatedFields.success) return { error: "Invalid fields" };
const { email, phone } = validatedFields.data;
try {
await signIn("credentials", { email, phone, redirectTo: DEFAULT_LOGIN_REDIRECT });
} catch (error) {
if (error instanceof AuthError) {
switch (error.type) {
case "CredentialsSignin":
return { error: "Invalid credentials" };
default:
return { error: "Something went wrong" };
}
}
throw error;
}
}
missile-developer, EEEcangorkemgunes, Galib-23, wrongbyte, lucho20pt and 18 more
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingtriageUnseen or unconfirmed by a maintainer yet. Provide extra information in the meantime.Unseen or unconfirmed by a maintainer yet. Provide extra information in the meantime.