NestJS 4

[NestJS] Global-guard

글로벌 가드대부분의 엔드포인트를 보호해야 하는 경우 인증 가드를 글로벌 가드로 등록.어떤 모듈에서든 다음과 같이 등록하면 모든 엔드포인트에 가드가 붙음providers: [ { provide: APP_GUARD, useClass: JwtAuthGuard, },],@Public() 데코레이터를 생성하여 글로벌 가드 뚫기import { SetMetadata } from '@nestjs/common';export const IS_PUBLIC_KEY = 'isPublic';export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);setMetaData 데코레이터 팩토리 함수를 통해 @Public 데코레이터 생성IS_PUBLIC_KEY는 메타데이터 ..

NestJS 2024.11.17

[NestJS] 사용자 인증 구현(Passport-local, passport JWT)

Documentation | NestJS - A progressive Node.js framework로컬 로그인 로직 구현passport 및 passport local 설치pnpm add @nestjs/passport passport passport-localpnpm add -D @types/passport-localbcrypt 설치pnpm add bcryptpnpm add -D @types/bcryptbcrypt 설치 이유용도crypto: 범용 암호화 라이브러리로 해시함수, 대칭/비대칭 암호화 등 다양한 암호화 기능 제공bcrypt: 비밀번호 해싱에 특화된 단방향 해시 함수성능crypto: 일반적으로 bcrypt보다 빠름. SHA-256 등의 해시함수는 고속 처리 가능bcrypt: 의도적으로 느리게 설..

NestJS 2024.11.17

[NestJS] TypeORMError: Entity metadata for User#applicants was not found

에러의 시작typeORM 세팅 중 entities를 글로벌 패턴에서 autoLoadEntities를 사용하니 TypeORMError: Entity metadata for User#applicants was not found와 같은 에러가 남.해결과정관계 설정 중 import가 잘못되었을 경우 에러가 날 수 있음import를 확인해 보니 에러안남N대M 관계 잘못 설정claude를 통해 수정하여 봤으나, 에러는 그대로혹시... module에 import를 하지않아서?정답module에 TypeOrmModule.forFeature([Entity])를 통해서 등록해야 자동 import가 된다고함교훈- autoLoadEntities를 사용할때는 당장 안쓰는 ENTITIY라도 등록해놓자.

NestJS 2024.11.10