inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

개발자라면 알아야 할 redis 기본

string자료구조

레디스에 저장하는 토큰 질문입니다.

74

literate_t

작성한 질문수 68

0

안녕하세요.

토큰 관련해서 레디스에 저장하는 게 리프레시 토큰이라고 하셨는데요. 액세스 토큰을 저장 안 하는 건지 궁금합니다.

리프레시 토큰은 액세스 토큰이 만료될 떄 필요하니까 상대적으로 사용 빈도가 낮고 매 요청 시에는 액세스 토큰이 쓰이는 걸로 알고 있어서요. 그렇다면 수시로 검증해야 하는 토큰은 액세스 토큰이 아닐까 해서요.

감사합니다.

redis nosql database devops

답변 2

0

bradkim

안녕하세요~

일반적으로 엑세스 토큰은 저장하지 않습니다. 빈번하게 검증 요청을 해야 하기 때문에, 저장후 비교하는 것은 성능상 비효율적입니다. 로직으로서 이 토큰이 해당 서버에서 발행된 토큰인지 아닌지 검증이 가능하기 때문에, 로직으로 검증을 합니다.

 

다만, 리프레시 토큰 같은 경우엔 목적 자체가 엑세스토큰을 재발급해주는게 목적이고 보안을 강화하기 위한 목적이기 때문에, rdb 또는 redis에 넣어두고 비교로서 검증을 하게 됩니다.

 

위와 같은 이유로 가장 일반적인 아키텍처는 리프레시토큰은 저장후 비교하는 방식으로 토큰을 검증하고, 엑세스 토큰은 logical한 방식으로 토큰을 검증하게 됩니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. literate_t님.

레디스에 토큰을 저장하는 방식에 대한 질문에 대해 설명드리겠습니다.

  1. 레디스와 토큰 저장:

    • 리프레시 토큰: 주로 서버 측에서 보관하며, 사용자가 로그아웃하거나 특정 이벤트가 발생할 때 갱신되도록 활용됩니다. 레디스에 저장되는 이유는 빠른 액세스와 관리 효율성을 제공하기 때문입니다. 이는 특정 사용 세션을 관리하거나 만료 시간을 추적하는 데 유용합니다.

    • 액세스 토큰: 일반적으로 클라이언트 측에서 보관하며, 짧은 수명의 인증 수단으로 사용됩니다. 액세스 토큰은 각 요청마다 클라이언트에서 서버로 전송되어 인증과 권한 부여를 제공합니다. 보통 레디스에 저장하지 않고 클라이언트 측 - 예를 들어, 메모리, 세션 스토리지 혹은 로컬 스토리지에 - 저장됩니다.

  2. 토큰 검증과 활용 빈도:

    • 액세스 토큰은 주로 각 API 요청 시 헤더에 포함되어 서버로 보내지며, 서버는 이를 통해 요청이 인증된 사용자로부터 온 것인지 확인합니다. 검증 과정은 주로 서버 내에서 이루어지고, 레디스 같은 외부 저장소를 항상 필요로 하지는 않습니다.

    • 리프레시 토큰은 액세스 토큰이 만료될 때 새로운 액세스 토큰을 발급받기 위해 사용됩니다. 따라서 상대적으로 사용 빈도가 낮습니다. 이러한 이유로 리프레시 토큰은 주로 서버 측에서 안전하게 관리되고 저장됩니다.

관련된 추가 정보나 실무 사례에 대해서는 아래의 유사한 토론을 참고해보실 수 있습니다:
- 리프레시 토큰과 액세스 토큰의 차이와 저장 전략

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

라우팅 테이블 설정 중 궁금한게 있습니다.

0

26

1

user-service jwt

0

26

2

젠킨스버전과 플러그인설치

1

26

2

cpu&memory 재설정하기에 질문이 있습니다.

1

33

2

Redlock 알고리즘 관해 궁금한게 있습니다!

0

28

2

시험 시작하기 전에 한 가지 질문 있습니다.

1

35

2

yml 작성하다가 에러 발생해서 문의 드립니다.

0

31

2

좋아요/조회수 카운팅 병목현상에 대해서 궁금한점이 있습니다.

0

26

2

(강의 6분 50초 부분) Workspace 안에 index.html이 비어있음

0

26

2

강의순서가 바뀌어 있습니다.

0

28

1

설치수업중에 질문드립니다.

1

44

2

강의사이트 접속 에러 문의 드립니다.

0

24

2

실무에서 Redis에서 0번 이외의 DB를 사용하나요?

0

143

2

실무에서의 복잡한 쿼리 결과 캐싱 전략(크기, TTL 등) 관련 질문

0

83

2

레디스 서버 구성

0

70

2

Redis Pub/Sub, Stream과 Kafka 비교 질문입니다.

0

305

2

채팅 서비스 관련하여 질문드립니다.

0

95

3

redis 개발 환경 수정 시 질문 입니다.

0

90

2

key값에 대한 작성 컨벤션

0

133

2

수업 자료는 어디 있을까요?

0

147

2

상품의 재고 변경을 비동기로 처리하는것에 대해 질문합니다.

0

194

2

혹시 kafka나 rabbitMQ 강좌 예정 없으신가요?

0

193

1

MacOS에서 brew를 사용한 설치를 권장하지 않는 이유가 무엇인가요?

0

229

2

레디스 pub/sub 질문

0

280

1