codestates / codestates/Memory-It

[Dev Log] ๐Ÿ”‘ Refresh Token, ์ •๋ง ์•ˆ์ „ํ•œ๊ฐ€?? 

Open
#78 0 comments 0 reactions 1 assignee Claimed by @cjhmoves33 View on GitHub
Dev Log server
Dominant language
JavaScript
Stars
1
Forks
2
PR merge metrics
No merged PRs in 30d

Description

### Refresh Token์€ ์ •๋ง ์œ ์ €๋ฆฌ์†Œ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์•ˆ์ „ํ•œ๋ฐฉ๋ฒ•์ธ๊ฐ€
+ Refresh Token์˜ ์กด์žฌ์ด์œ ์— ๋Œ€ํ•ด์„œ๋Š” ํ† ํฐ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋ฐฐ์› ๋‹ค.
+ Access Token์—๋Š” ์œ ์ €์˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์— ์˜ค๋ž˜ ์ €์žฅํ•ด๋‘”๋‹ค๋ฉด ๋ณด์•ˆ์œ„ํ—˜์— ์˜ค๋ž˜ ๋…ธ์ถœ๋จ์„ ์˜๋ฏธํ•œ๋‹ค.
+ ๊ทธ๋ž˜์„œ Access Token์„ ์งง๊ฒŒ ์œ ์ง€ํ•˜์ž๋‹ˆ ์œ ์ €๊ฒฝํ—˜์ด ํ•˜๋ฝํ•˜๋Š”๋ฐ, ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š”๊ฒƒ์ด Refresh Token.
+ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋„ ์–ธ๊ธ‰์ด์žˆ๋˜๋ถ€๋ถ„์ด์ง€๋งŒ Refresh Token์ด ํƒˆ์ทจ๋‹นํ•˜๋ฉด ๋์ด์•„๋‹Œ๊ฐ€ ๋ผ๋Š” ์ƒ๊ฐ์ด ์•ˆ๋“ค ์ˆ˜ ๊ฐ€ ์—†๋‹ค. ์™„๋ฒฝํ•œ ๋ณด์•ˆ์€ ์—†๊ธฐ์— ๋‹น์—ฐํžˆ ๋งž๋‹ค. ํ•ด์ปค๊ฐ€ Refresh Token์ด ํƒˆ์ทจํ•ด Access Token์„ ๋ฐœ๊ธ‰๋ฐ›์œผ๋ฉด ๊ทธ๋งŒ์ด๋‹ค.
+ Token์€ ํ† ํฐ์ž์ฒด๊ฐ€ ์‹๋ณ„์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ๋ฌด๊ธฐ๋ช…์œผ๋กœ ์ž‘์„ฑ๋˜๊ธฐ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ ํ† ํฐ์„ ๋ณด๋‚ธ์ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

### ์•„๋ฌด ์˜๋ฏธ์—†๋Š” ๋ฐฉ๋ฒ•์„ ๋„์ž…ํ•˜์ง„ ์•Š์•˜์„ํ„ฐ
+ Refresh Token์„ ๋” ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ํ•œ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜๋Š” ๊ธ€์„ ์ฝ์—ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด **_Token Family_** ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹
+ Token Family์˜ ์ ‘๊ทผ๋ฐฉ์‹์€ ํ† ํฐ์„ ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ์ด **_์œ ์ €์ธ์ง€ ํ•ด์ปค์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ๋•Œ๋ฌธ์— ๋ชจ๋‘ ํ•ด์ปค๋กœ ๋ณด์ž_** ์ •๋„๋กœ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค.

#### Token Family ๋งค์ปค๋‹ˆ์ฆ˜
+ Access Token์ด ๋งŒ๋ฃŒ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” Refresh Token์„ ์‚ฌ์šฉํ•ด์„œ Access Token์„ ์žฌ๋ฐœ๊ธ‰ ๋ฐ›๋Š”๋‹ค.
+ ์ด๋•Œ ์„œ๋ฒ„๋Š” Refresh Token๋„ ํ•จ๊ป˜ ์žฌ๋ฐœ๊ธ‰ํ•œ๋‹ค.
+ ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๋Š” **_๊ธฐ์กด์— ์‚ฌ์šฉํ•œ Refresh + Access ํ† ํฐ์Œ_** ๊ณผ ์ง€๊ธˆ **_์ƒˆ๋กœ ๋ฐœ๊ธ‰ํ•œ Refresh + Access ํ† ํฐ์Œ_** ์„ ๋ชจ๋‘ ์ €์žฅํ•œ๋‹ค. ์ด๊ฒƒ์ด Token Family ์ด๋‹ค. (์ด์ œ ๊ธฐ์กดํ† ํฐ์Œ์„ ํ† ํฐ1, ์ƒˆํ† ํฐ์Œ์„ ํ† ํฐ2๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ฒ ๋‹ค.)
+ ์ด ์ƒํƒœ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ† ํฐ1์„ ์‚ฌ์šฉํ•ด์„œ ์ •๋ณด๋ฅผ ์š”์ฒญํ•œ๋‹ค๋ฉด? ๋ฌด์–ธ๊ฐ€ ์ž˜๋ชป๋์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ถ„๋ช… ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์ œ ํ† ํฐ2๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด๊ธฐ๋•Œ๋ฌธ
+ ์ด ๋•Œ ํ† ํฐ1์„ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ์„ ๋ณด๋‚ธ์ชฝ์ด ์œ ์ €์ธ์ง€ ํ•ด์ปค์ธ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ํ† ํฐ1์˜ Access Token์ด ๋งŒ๋ฃŒ๋œ ์ƒํƒœ๋กœ ์„œ๋ฒ„๋กœ์˜ ์š”์ฒญ์„ ๋จผ์ €๋ณด๋‚ธ์ชฝ์ด ์–ด๋А์ชฝ์ธ์ง€๋ถ€ํ„ฐ ์ด๋ฏธ ์•Œ ์ˆ˜ ์—†์—ˆ๋‹ค. ์œ„์— Token Family์˜ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ๋งํ–ˆ๋‹ค์‹ถ์ด ๋ชจ๋‘๋ฅผ ํ•ด์ปค๋กœ ๋ณด๋ฉด๋œ๋‹ค.(์ด๋ฏธ ๋ญ”๊ฐ€ ์ž˜๋ชป๋๊ธฐ ๋•Œ๋ฌธ)
+ ์„œ๋ฒ„๋Š” ์ด ์ƒํ™ฉ์„ ์ธ์ง€ํ•˜๊ณ  ํ† ํฐ1๊ณผ ํ† ํฐ2์˜ ์ ‘๊ทผ๊ถŒํ•œ์„ ๋ชจ๋‘ ๋ฌดํšจํ™”์‹œํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ƒˆ๋กœ์šด ์ธ์ฆ์„ ์š”์ฒญํ•œ๋‹ค.

### ๋‚ด ์ƒ๊ฐ์€

์•„๋ฌดํŠผ Refresh Token์˜ ํƒˆ์ทจ๋ฅผ ๋ง‰๋Š” ์ง์ ‘์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹˜์€ ํ™•์‹คํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์™„๋ฒฝํ•œ๋ณด์•ˆ์€ ์—†๊ณ  ๋ณด์•ˆ์˜ ๋ฒฝ์„ ํ•œ์ธต ๋‘ํ…Š๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋งž๋‹ค๊ณ  ๋ณธ๋‹ค.
ํ•ดํ‚น์‹œ๋„๊ฐ€ ์—†๋‹ค๋ฉด ์œ ์ €๋Š” Refresh token์„ ๋ฌด๊ธฐํ•œ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜์„œ ์œ ์ €๊ฒฝํ—˜์„ ์ตœ๋Œ€ํ•œ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜์‹ถ๋‹ค.
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ Refresh Token์„ ์ด์šฉํ•ด๋ณผ๊นŒํ–ˆ๋Š”๋ฐ Access Token๊ณผ ๋‹จ์ˆœํžˆ ํ† ํฐ์˜ ์ˆ˜๋ช…์˜ ์ฐจ์ด๋กœ ๋‘๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋ฌด์˜๋ฏธํ•œ๊ฒŒ ์•„๋‹Œ๊ฐ€์‹ถ์–ด์„œ ์ฐพ์•„๋ณธ ์ •๋ณด์ด๋‹ค. ๋‚ด๊ฐ€ ์ •ํ™•์ด ์ดํ•ดํ•œ๊ฒƒ์ด๋ผ๋ฉด ์ข‹๊ฒ ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”์ง€๋Š”..... ์‹œ๋„๋Š” ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

### ์ฐธ๊ณ ํ•œ ๋ ˆํผ๋Ÿฐ์Šค
[What Are Refresh Tokens and How to Use Them Securely](https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.