TIL

24.04.08

아리단길아조씨 2024. 4. 9. 11:01
728x90

스케쥴 생성 부분 서비스, 컨트롤러 수정 필요

jwt 가드 만들기
뭐가 필요한지, 뭐를 반환할 지

1. 로그인 시 인증 가능해야함
2. 로그인 한 사람이 누구인지 알아야함.


typeORM은 Entity를 사용하기 위해 사용한다.

app.module에 typeORM 써줌 -> 해당 모듈에 TypeOrmModule.forFeature로 임포트를 해줌 -> 해당 서비스 계층에 @InjectRepository()로 레파지토리를 써줄 수 있음

nest g res 프로젝트 명령어를 사용하면 프로젝트명의 파일들이 셋팅이 된다(컨트롤러 엔티티 서비스 테스트코드)

Entity 파일
@Column({type: 'varchar'}) => 코드 레벨에서의 자료형 지정이 아닌 DBMS를 위한 자료형을 지정해주는거임
email: string

@Column({type: 'number', select: false}) => select: 레포지토리 계층에서 find를 했을 때 false로 지정된 것들은 결과(비밀번호)를 가져오지 않음
password: number
** find를 할 때 강제적으로 password를 명시해주면 password를 가져올 수 있음

create(createUserDto: CreateUserDto) {
  const{email, password} = createUserDto;

// 비밀번호를 암호화 시킨다(bcrypt의 hash를 사용해서)
const hashedPassword = await bcrypt.hash(password, 12)

외부 라이브러리이기 때문에 
import { compare, hash } from 'bcrypt' 로 임포트 해줌

root app.module에서 Entity 한방에 불러오는 방법
useFactory 안에 entities: [__dirname + '/../**/*.entity.{js, ts}'] 를 써주면 엔티티를 싹다 가져옴


Guard

guard - passport - strategy (서로 연결되어있음)
guard에서 extends passport 하면 strategy가 나옴

gaurd = 가드(본청)
passport = 브로커(스트레티지를 가드로 출장보냄)
strategy = 노예(가드에 출장 나감)

이것저것 찾아봐도 모르겠음... 추가적으로 공부가 더 필요함

'TIL' 카테고리의 다른 글

24.04.11  (1) 2024.04.12
24.04.09  (0) 2024.04.11
24.04.05  (0) 2024.04.08
24.04.04  (0) 2024.04.05
24.04.03  (1) 2024.04.04