anycoder-4b8d5e0c / pages /api /auth /[...nextauth].js
00Boobs00's picture
Upload pages/api/auth/[...nextauth].js with huggingface_hub
7ee9dc8 verified
import NextAuth from 'next-auth';
import CredentialsProvider from 'next-auth/providers/credentials';
export const authOptions = {
providers: [
CredentialsProvider({
name: 'Developer Secure Access',
credentials: {
email: { label: "Email", type: "email" },
password: { label: "Password", type: "password" }
},
async authorize(credentials) {
// Secure check against environment variables
// This ensures only the developer with access to deployment secrets can log in.
const adminEmail = process.env.ADMIN_EMAIL;
const adminPassword = process.env.ADMIN_PASSWORD;
if (!adminEmail || !adminPassword) {
console.error("Security Error: ADMIN_EMAIL or ADMIN_PASSWORD not set in environment.");
return null;
}
if (credentials.email === adminEmail && credentials.password === adminPassword) {
return {
id: '1',
name: 'Lead Developer',
email: adminEmail,
};
}
return null;
}
})
],
pages: {
signIn: '/', // Use home page for login to keep it contained
error: '/', // Show errors on home page
},
session: {
strategy: 'jwt',
maxAge: 24 * 60 * 60, // 24 hours
},
callbacks: {
async jwt({ token, user }) {
if (user) {
token.id = user.id;
}
return token;
},
async session({ session, token }) {
if (session.user) {
session.user.id = token.id;
}
return session;
},
},
secret: process.env.NEXTAUTH_SECRET,
};
export default NextAuth(authOptions);