feat: refactoring auth & add email password login (#318)

* feat: wip

* fix: issues

* feat: clean controllers and services

* fix: test

* Fix auth

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Jérémy M
2023-06-17 13:42:02 +02:00
committed by GitHub
parent d13ceb98fa
commit 299ca293a8
215 changed files with 1668 additions and 680 deletions

View File

@ -0,0 +1,11 @@
import { IsEmail, IsNotEmpty, IsString } from 'class-validator';
export class ChallengeInput {
@IsNotEmpty()
@IsEmail()
email: string;
@IsNotEmpty()
@IsString()
password: string;
}

View File

@ -0,0 +1,5 @@
import { TokenEntity } from './token.entity';
export class LoginTokenEntity {
loginToken: TokenEntity;
}

View File

@ -0,0 +1,7 @@
import { IsNotEmpty, IsString } from 'class-validator';
export class RefreshTokenInput {
@IsNotEmpty()
@IsString()
refreshToken: string;
}

View File

@ -0,0 +1,24 @@
import {
IsEmail,
IsNotEmpty,
IsString,
Matches,
MinLength,
} from 'class-validator';
import { PASSWORD_REGEX } from '../auth.util';
export class RegisterInput {
@IsNotEmpty()
@IsEmail()
email: string;
@IsNotEmpty()
@IsString()
@MinLength(8)
@Matches(PASSWORD_REGEX, { message: 'password too weak' })
password: string;
@IsNotEmpty()
@IsString()
displayName: string;
}

View File

@ -0,0 +1,4 @@
export class TokenEntity {
token: string;
expiresAt: Date;
}

View File

@ -0,0 +1,11 @@
import { TokenEntity } from './token.entity';
import { User } from '@prisma/client';
export class VerifyEntity {
user: Omit<User, 'passwordHash'>;
tokens: {
accessToken: TokenEntity;
refreshToken: TokenEntity;
};
}

View File

@ -0,0 +1,7 @@
import { IsNotEmpty, IsString } from 'class-validator';
export class VerifyInput {
@IsNotEmpty()
@IsString()
loginToken: string;
}