-
[Nest.js] 9 - Authentification - module/componentsNest.js 2021. 9. 13. 18:44
Contents
1. AuthModule
2. CLI - module, service, controller
3. Entity, repository
4. DTO
5. DI
1. AuthModule
2. CLI - module, service, controller
$ nest generate module auth $ nest generate service auth --no-spec $ nest generate controller auth --no-spec
3. Entity, Repository
- src/auth/user.entity.ts
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() username: string; @Column() password: string; }
- src/auth/user.repository.ts
import { EntityRepository, Repository } from 'typeorm'; import { User } from './user.entity'; @EntityRepository(User) export class UserRepository extends Repository<User> {}
- register this into where it needed, auth.module.ts below.
- src/auth/auth.module.ts
... import { UserRepository } from './user.repository'; @Module({ imports: [ TypeOrmModule.forFeature([UserRepository]) ], ... }) export class AuthModule {}
4. DTO(Data Transfer Object)
- src/auth/dto/auth-credential.dto.ts
import { IsString, Matches, MaxLength, MinLength } from 'class-validator'; // 1 export class AuthCredentialsDto { @IsString() @MinLength(4) @MaxLength(20) username: string; @IsString() @MinLength(4) @MaxLength(20) @Matches(/^[a-zA-Z0-9]*$/, { message: 'password only accepts english and number', }) password: string; }
// 1. global pipe will validate this dto with the decorators.
5. DI(Dependency Injection)
- src/auth/auth.controller.ts
import { Controller } from '@nestjs/common'; import { AuthService } from './auth.service'; @Controller('auth') export class AuthController { constructor(private userService: AuthService) {} }
- src/auth/auth.service.ts
import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { UserRepository } from './user.repository'; @Injectable() export class AuthService { constructor( @InjectRepository(UserRepository) private userRepository: UserRepository, ) {} }
'Nest.js' 카테고리의 다른 글
[Nest.js] 11 - Authentification - JWT (0) 2021.09.14 [Nest.js] 10 - Authentification - sign up, log in (0) 2021.09.13 [Nest.js] 8 - CRUD summary code(#1 ~ #7) (0) 2021.09.10 [Nest.js] 7- Entity & Repository (0) 2021.09.09 [Nest.js] 6 - DTO & PIPES (0) 2021.09.09