Skip to content
Snippets Groups Projects
Select Git revision
  • b393b0fee9020c2b02d76f2937d93d411e01c005
  • main default protected
2 results

ControleurAuteur.php

Blame
  • register.ts 900 B
    import { hash } 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: 'User already exists' });
        }
    
        const { email, name, password } = await readBody(event);
    
        if (!/[A-Z]/.test(password) || !/[a-z]/.test(password) || !/[0-9]/.test(password) || !/[^A-Za-z0-9]/.test(password)) {
            return new Response('Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character', {
                status: 422,
            });
        }
    
        const hashedPassword = await hash(password, 10);
    
        const user = await prisma.user.create({
            data: {
                email,
                name,
                password: hashedPassword,
            },
        });
    
        return { user };
    });