Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import bcrypt from "bcryptjs"
- import type { NextAuthConfig } from "next-auth"
- import Credentials from "next-auth/providers/credentials"
- import { getUserByEmail } from "@/lib/api/services/user"
- import { LoginSchema } from "@/lib/schemas/auth"
- export default {
- providers: [
- Credentials({
- async authorize(credentials) {
- const validatedFields = LoginSchema.safeParse(credentials)
- if (validatedFields.success) {
- const { email, password } = validatedFields.data
- const user = await getUserByEmail(email)
- if (!user || !user.password) return null
- const passwordsMatch = await bcrypt.compare(password, user.password)
- if (passwordsMatch) return user
- }
- return null
- },
- }),
- ].filter(Boolean) as NextAuthConfig["providers"],
- } satisfies NextAuthConfig
Advertisement
Add Comment
Please, Sign In to add comment