inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

refresh token db 저장

1496

hikenike

작성한 질문수 3

0

강의 내용중엔 빠졌지만 refresh token을 db에 저장해야하는것으로 알고있는데요

테이블 설계시 refresh 토큰을 User 테이블 내에 칼럼으로 넣을까 생각을했었는데

의미가 맞지않는것같아서요

 

아래처럼 one to one 관계로 해서 관리하는건 올바른 방법일까요?

class TokenModel {
  @PrimaryGenerateKey()
  @OneToOne(() => UserModel, user => user.refresh)
  id: string;

  @Column()
  refreshToken: string;
}

class User {
  ...

 @OneToOne(() => TokenModel, token => token.id)
 refresh: TokenModel
}

javascript typescript rest-api nestjs backend

답변 1

0

코드팩토리

안녕하세요!

토큰은 DB에 저장하지 않습니다.

JWT를 쓰는 이유가 시그니처로 자체 검증이 가능하기 때문이라 따로 매핑이 필요 없습니다.

다만 보안적인 제스처로 저장을 하는 경우가 있는데 이는 어떤 사용자의 토큰인지 알기위함이 아닙니다.

예를들어 특정 토큰이 탈취 됐을 경우 해당 토큰을 더이상 사용하지 못하도록 해야 할 수 있습니다. 이럴때 블랙 리스팅을 해야하는데 SQL같은 디비보다 휘발성이 강한 Redis 같은 인메모리 데이터베이스를 더 많이 사용합니다.

감사합니다!

cascade 질문

0

41

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

49

1

process.env port key 에러

0

47

1

추상화

0

51

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

102

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

57

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

72

1

app.controller app.service 는 지워도되나요?

0

70

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

79

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

68

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

103

2

socket connect 오류

0

98

2

강의를 들으면서 궁금한 점

0

98

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

100

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

351

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

78

2

User 데코레이터 버그 수정 전달드립니다.

0

68

1

git 주소 부탁드립니다.

0

113

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

85

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

148

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2