// app/api/auth/[...nextauth]/route.js import NextAuth from 'next-auth'; import CredentialsProvider from 'next-auth/providers/credentials'; import { validateCredentials } from '../../../actions/auth'; export const authOptions = { providers: [ CredentialsProvider({ name: 'Credentials', credentials: { username: { label: "Username", type: "text" }, password: { label: "Password", type: "password" } }, async authorize(credentials) { if (!credentials?.username || !credentials?.password) { return null; } const user = await validateCredentials( credentials.username, credentials.password ); return user; } }) ], callbacks: { async jwt({ token, user }) { if (user) { token.id = user.id; token.role = user.role; token.username = user.username; } return token; }, async session({ session, token }) { if (token) { session.user.id = token.id; session.user.role = token.role; session.user.username = token.username; } return session; } }, pages: { signIn: '/login', }, session: { strategy: "jwt", } }; const handler = NextAuth(authOptions); export { handler as GET, handler as POST };