How to add credentials in Next.js app router?
Assesses fundamental understanding of Next.js conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
To add credentials in Next.js app router, you can use the next-auth package with the Credentials provider. First, install it:
npm install next-auth
Then, create a file named [...nextauth].js in the app/api/auth directory and configure your credentials provider.
import NextAuth from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
export default NextAuth({
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
username: { label: "Username", type: "text" },
password: { label: "Password", type: "password" },
},
async authorize(credentials) {
// Add your own logic to validate credentials here
const user = { id: 1, name: "John Doe" }; // Example user
if (
credentials.username === "admin" &&
credentials.password === "password"
) {
return user; // Return user object if credentials are valid
} else {
return null; // Return null if credentials are invalid
}
},
}),
],
pages: {
signIn: "/auth/signin", // Custom sign-in page
},
callbacks: {
async session(session, user) {
session.user = user; // Add user object to session
return session;
},
},
secret: process.env.NEXTAUTH_SECRET, // Required for JWT encryption
session: {
jwt: true, // Use JWT for session management
},
jwt: {
secret: process.env.NEXTAUTH_JWT_SECRET, // Required for JWT encryption
},
});
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.