[uber-eats] user authentication - 2

한재창·2023년 5월 31일
0
post-thumbnail

JWT Module 만들기

Module

module의 종류는 두 가지가 존재하는데, 첫 번째는 정적인 'static module'이다.

위 그림을 보면 UsersModule은 어떤 설정도 되어있지 않다.
두 번째 모듈은 동적인 'Dynamic module'이다. 위 그림을 보면 forRoot로 여러가지 설정이 적용된 것을 볼 수 있다.
동적인 모듈은 정적인 모듈로 만들어 줄 수 있는데 여러가지 설정들을 한 후 return 값으로 우리가 설정한 옵션들이 존재하는 상태의 정적인 모듈을 내보내면 된다.

jwt module

  1. npm g mo jwt, npm g s jwt를 입력하여 jwt.moudle.ts 파일과 jwt.service.ts 파일을 만들어준다.

  2. jwt.module.ts 파일에서 static forRoot 함수를 생성하고 반환값은 DynamicModule 타입으로 한다. 또한 자주 사용할 모듈이라면 '@Global' 데코레이터를 사용해준다. 이렇게 설정하면 import를 하지 않아도 전역적으로 사용가능하다.

  3. jwt.service.ts 파일에서 설정값을 설정해준다.

  4. users.service.ts 파일에서 constructor에서 불러오면 3번에서 만든 함수를 사용할 수 있게 된다.

의존성 주입 과정

  1. jwt.module.ts 파일에서 jwt.service.ts 파일의 JwtService class로 options 값을 넘기려면 providers에서 provider object를 사용한다.

  2. 설정을 한 뒤 jwt.service.ts 파일에서 JwtService class에 contstructor() 에서 Inject(제공자) options: JwtModuleOptions를 입력해주면 된다.

  3. app.module.ts 파일에서 JwtModule.forRoot() 옵션으로 넘겨준 값을 받을 수 있다.

profile
취준 개발자

0개의 댓글