Skip to content
Snippets Groups Projects
Select Git revision
  • f7d327c0788ae43daf1e31acdc53baf16d4e37dd
  • master default protected
2 results

login.ts

Blame
  • login.ts 652 B
    import { compare } from 'bcrypt';
    import { prisma } from '~/server/prisma';
    
    export default defineEventHandler(async (event) => {
        const userExists = await prisma.user.count();
        if (!userExists) {
            throw createError({ statusCode: 403, statusMessage: 'No users exist' });
        }
    
        const { email, password } = await readBody(event);
    
        const user = await prisma.user.findUnique({
            where: { email },
        });
    
        if (!user || !(await compare(password, user.password))) {
            throw createError({ statusCode: 401, statusMessage: 'Invalid credentials' });
        }
    
        // Set up session or token logic here
    
        return { user };
    });