Select Git revision
ControleurAuteur.php
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 };
});