Files
ayristech-youtube/lib/auth.ts
T

53 lines
1.3 KiB
TypeScript

import NextAuth from "next-auth"
import CredentialsProvider from "next-auth/providers/credentials"
export const { handlers, auth, signIn, signOut } = NextAuth({
secret: process.env.AUTH_SECRET || process.env.NEXTAUTH_SECRET,
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: { label: "Email", type: "email" },
password: { label: "Password", type: "password" }
},
async authorize(credentials) {
const adminEmail = process.env.ADMIN_EMAIL || "admin@ayris.tech";
const adminPassword = process.env.ADMIN_PASSWORD || "admin";
if (
credentials?.email === adminEmail &&
credentials?.password === adminPassword
) {
return {
id: "1",
name: "Admin",
email: adminEmail,
role: "ADMIN"
}
}
return null
}
})
],
callbacks: {
async jwt({ token, user }) {
if (user) {
token.role = (user as any).role
}
return token
},
async session({ session, token }) {
if (session.user && token.role) {
(session.user as any).role = token.role
}
return session
}
},
pages: {
signIn: '/login',
error: '/login',
},
trustHost: true,
})