๐Ÿ‘จโ€๐Ÿ’ปOAuth๋ž€? & OAuth1 vs OAuth2

์„์ค€ยท2022๋…„ 10์›” 16์ผ
2

Computer Science

๋ชฉ๋ก ๋ณด๊ธฐ
5/6
post-thumbnail

์š”์ฆ˜ ์‹œ์ค‘์— SW ๋ถ€ํŠธ์บ ํ”„๊ฐ€ ๋งŽ๋‹ค.
๊ทธ ์ค‘, ์›น ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ณณ์ด ๋งŽ์€๋ฐ OAuth๊ธฐ๋Šฅ์„ ๊ฒฝํ—˜ํ•ด๋ณธ ์›น ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๋“ค ๋˜ํ•œ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ OAuth๋ผ๊ณ  ํ–ˆ์„๋•Œ, ์†Œ์…œ๋กœ๊ทธ์ธ ์ •๋„๋กœ ์•Œ๊ณ  ๊ทธ์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ณ  ๋‚˜ ์—ญ์‹œ ๊ทธ๋ ‡๊ธฐ์— ์ œ๋Œ€๋กœ๋œ ๊ฐœ๋…๊ณผ OAuth1๊ณผ OAuth2์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž

๐Ÿ“ŒOAuth๋ž€?

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์ฆ์„ ์œ„ํ•œ ์ ‘๊ทผ ๊ด€ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ

์š”์ฆ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์„ ์ด์šฉํ•˜๋‹ค๋ณด๋ฉด ์œ„ ์‚ฌ์ง„ ์ฒ˜๋Ÿผ ์ง์ ‘ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ํƒ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณ„์ •์„ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ์Šต์„ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ํƒ€ ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ์ธ ํ•˜๋Š”๊ฒƒ์ด OAuth์ด๋‹ค.
๊ทธ๋Ÿผ OAuth์˜ ์ •ํ™•ํ•œ ๊ฐœ๋…๊ณผ ํ”„๋กœ์„ธ์Šค๋Š” ๋ญ˜๊นŒ?

โœ… ๊ฐœ๋…

Open Authorization์˜ ์•ฝ์ž๋กœ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๋“ค์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ , ๋‹ค๋ฅธ ์›น์‚ฌ์˜ํŠธ ์ƒ์˜ ์ž์‹ ๋“ค์˜ ์ •๋ณด์— ๋Œ€ํ•ด ์›น์‚ฌ์ดํŠธ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ ‘๊ทผ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต์ ์ธ ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š”, ์ ‘๊ทผ ์œ„์ž„์„ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ด๋‹ค.

๐Ÿ•›๊ฐœ์š”

OAuth๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ์ „์—๋Š” ์ธ์ฆ๋ฐฉ์‹์˜ ํ‘œ์ค€์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ ๊ธฐ๋ณธ์ธ์ฆ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์ด๋Š” ๋ณด์•ˆ์ƒ ์ทจ์•ฝํ•œ ๊ตฌ์กฐ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋งŽ๋‹ค.
๊ธฐ๋ณธ ์ธ์ฆ์ด ์•„๋‹ ๊ฒฝ์šฐ๋Š” ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐ์ž ๊ฐœ๋ฐœํ•œ ํšŒ์‚ฌ์˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์‚ฌ์šฉ์ž๋ฅผ ํ™•์ธํ•˜์˜€๋‹ค.

  • ex.
    • ๊ตฌ๊ธ€์˜ AuthSub
    • AOL์˜ OpenAuth
    • ์•ผํ›„์˜ BBAuth
    • ์•„๋งˆ์กด์˜ ์›น์„œ๋น„์Šค API

OAuth๋Š” ์ด๋Ÿฐ ์ œ๊ฐ๊ฐ ์ธ์ฆ๋ฐฉ์‹์„ ํ‘œ์ค€ํ™”ํ•œ ์ธ์ฆ๋ฐฉ์‹์ด๋‹ค. OAuth๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด ์ธ์ฆ์„ ๊ณต์œ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ผ๋ฆฌ ๋ณ„๋„์˜ ์ธ์ฆ์ด ํ•„์š”์—†๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ์ธ์ฆ์œผ๋กœ ํ†ตํ•ฉ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ• OAuth 1.0 ๊ตฌ์„ฑ

์šฉ์–ด์„ค๋ช…
์‚ฌ์šฉ์ž(user)์„œ๋น„์Šค ์ œ๊ณต์ž์™€ ์†Œ๋น„์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ์ธ
์†Œ๋น„์ž(consumer)Open API๋กœ ๊ฐœ๋ฐœ๋œ OAuth๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ์ œ๊ณต์ž์—๊ฒŒ ์ ‘๊ทผํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
์„œ๋น„์Šค ์ œ๊ณต์ž(service provider)OAuth๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ์„ ์ง€์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
์†Œ๋น„์ž ๋น„๋ฐ€๋ฒˆํ˜ธ(consumer secret)์„œ๋น„์Šค ์ œ๊ณต์ž์—๊ฒŒ ์†Œ๋น„์ž์ž„์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค
์š”์ฒญ ํ† ํฐ(request token)์†Œ๋น„์ž๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ธ์ฆ๋ฐ›๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ํ† ํฐ
์ ‘๊ทผ ํ† ํฐ(access token)์ธ์ฆ ํ›„ ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค ์ œ๊ณต์ž๊ฐ€ ์•„๋‹Œ ์†Œ๋น„์ž๋ฅผ ํ†ตํ•ด์„œ ์ž์› ์ ‘๊ทผ์„ ํ—ˆ๋ฝํ•˜๋Š” ํ‚ค๋ฅผ ๊ฐ–๊ณ ์žˆ๋Š” ํ† ํฐ

๐Ÿ•’ OAuth 1.0 ์ธ์ฆ ๋ฐฉ์‹


์‚ฌ์ง„ ์ถœ์ฒ˜: showbugs.github.io
1. ์†Œ๋น„์ž๊ฐ€ ์„œ๋น„์Šค ์ œ๊ณต์ž์—๊ฒŒ ์š”์ฒญ ํ† ํฐ์„ ์š”์ฒญํ•œ๋‹ค.
2. ์„œ๋น„์Šค ์ œ๊ณต์ž๊ฐ€ ์†Œ๋น„์ž์—๊ฒŒ ์š”์ฒญ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด์ค€๋‹ค.
3. ์†Œ๋น„์ž๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์„œ๋น„์Šค ์ œ๊ณต์ž๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์ˆ˜ํ–‰
4. ์„œ๋น„์Šค ์ œ๊ณต์ž๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์†Œ๋น„์ž๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
5. ์†Œ๋น„์ž๊ฐ€ ์ ‘๊ทผ ํ† ํฐ์„ ์š”์ฒญํ•œ๋‹ค.
6. ์ œ๊ณต์ž๊ฐ€ ์ ‘๊ทผ ํ† ํฐ์„ ๋ฐœํ–‰ํ•œ๋‹ค.
7. ๋ฐœ๊ทผ๋œ ์ ‘๊ทผ ํ† ํฐ์„ ์ด์šฉํ•˜์—ฌ ์†Œ๋น„์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ •๋ณด์— ์ ‘๊ทผํ•œ๋‹ค.

์ฆ‰ OAuth๋Š” ์ด ๊ณ ๊ฐ, ๊ณ ๊ฐ์ด ์ด์šฉํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ ‡๊ฒŒ 3๊ฐœ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค.
๊ตฌํ˜„์ด ๋ณต์žกํ•จ,
HMAC(keyed-hash message authentication code, hash-based message authentication code)๋ฅผ ํ†ตํ•œ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€,
์ธ์ฆํ† ํฐ์ด ๋งŒ๋ฃŒ๊ฐ€ ๋˜์ง€ ์•Š์•„ ํ† ํฐ์„ ๋งŒ๋ฃŒํ•˜๋ ค๋ฉด ์ œ๊ณต์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•จ
๋“ฑ์œผ๋กœ OAuth 2.0์ด ๋“ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ OAuth2?

โšก OAuth 1.0๊ณผ ๋‹ฌ๋ผ์ง„ ์ 

  1. ๊ธฐ๋Šฅ์˜ ๋‹จ์ˆœํ™”, ๊ธฐ๋Šฅ๊ณผ ๊ทœ๋ชจ์˜ ํ™•์žฅ์„ฑ ๋“ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค.
  2. https๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™”๋ฅผ ํ•˜์—ฌ ๊ณผ์ •์˜ ๋‹จ์ˆ˜ํ™”๋ฅผ ํ•˜์˜€๋‹ค.
  3. ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฐฉ์‹์ด ์ œ๊ณต๋œ๋‹ค.
  4. api์„œ๋ฒ„์—์„œ ์ธ์ฆ์„œ๋ฒ„์™€ ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๊ฐ€ ๋ถ„๋ฆฌ๋๋‹ค.

๐Ÿ•› OAuth 2.0 ๊ตฌ์„ฑ

์šฉ์–ด์„ค๋ช…
Resource owner์‚ฌ์šฉ์ž
ClientResource Server์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
Resource Server(API Server)์ž์›์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์„œ๋ฒ„
Authorization Server์‚ฌ์šฉ์ž์˜ ๋™์˜๋ฅผ ๋ฐ›์•„์„œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์„œ๋ฒ„, ์ผ๋ฐ˜์ ์œผ๋กœ Resource Server์™€ ๊ฐ™์€ URL ํ•˜์œ„์— ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ

๐Ÿ• OAuth 2.0 ์ธ์ฆ ๋ฐฉ์‹

OAuth 2.0 ์ธ์ฆ ๊ณผ์ •

OAuth 2.0 ํ”„๋กœ์„ธ์Šค

์‚ฌ์ง„ ์ถœ์ฒ˜: ํŽ˜์ด์ฝ” ๊ฐœ๋ฐœ์ž์„ผํ„ฐ OAuth 2.0 ํ”„๋กœ์„ธ์Šค

1-5 ๋‹จ๊ณ„๋Š” Authorization Code ๋ฐœ๊ธ‰ ์š”์ฒญ URL์„ ํ†ตํ•ด ์ง„ํ–‰
7-8 ๋‹จ๊ณ„๋Š” ์„œ๋น„์Šค์—์„œ callbackURL์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ Authorization Code๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Access Token์„ ์š”์ฒญ API๋ฅผ ํ†ตํ•ด ์ง„ํ–‰
8๋‹จ๊ณ„์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ Access Token์€ ์„œ๋น„์Šค์— ์ž์ฒด์ ์œผ๋กœ ์ €์žฅ, ๊ด€๋ฆฌ
10-11๋‹จ๊ณ„ ์‚ฌ์šฉ์ž์˜ ์„œ๋น„์Šค ์š”์ฒญ์‹œ ํšŒ์›์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด AccessToken์„ ํ†ตํ•ด API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ•’ ์ธ์ฆ ์ข…๋ฅ˜

๐Ÿ“Œ1. Authorization Code Grant

  • ์„œ๋ฒ„ ์‚ฌ์ดํŠธ ์ฝ”๋“œ๋กœ ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹
  • ๊ถŒํ•œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์™€ ๋ฆฌ์†Œ์Šค์„œ๋ฒ„๊ฐ„์˜ ์ค‘์žฌ ์—ญํ• 
  • AccessToken์„ ๋ฐ”๋กœ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•˜์ง€ ์•Š์•„ ์ž ์žฌ์  ์œ ์ถœ์„ ๋ฐฉ์ง€
  • ๋กœ๊ทธ์ธ์‹œ์— ํŽ˜์ด์ง€์— URL์— response-type=code ๋ผ๊ณ  ๋„˜๊น€

๐Ÿ“Œ2. Implicit Grant

  • token๊ณผ scope์— ๋Œ€ํ•œ ์ŠคํŽ™ ๋“ฑ์€ ๋‹ค๋ฅด์ง€๋งŒ OAuth1.0๊ณผ ๊ฐ€์žฅ ๋น„์Šทํ•œ ์ธ์ฆ ๋ฐฉ์‹
  • Public Client์ธ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
  • OAuth 2.0์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹
  • ๊ถŒํ•œ ์ฝ”๋“œ ์—†์ด ๋ฐ”๋กœ ๋ฐœ๊ธ‰๋ผ์„œ ๋ณด์•ˆ์— ์ทจ์•ฝ
  • ์ฃผ๋กœ Read Only์ธ ์„œ๋น„์Šค์— ์‚ฌ์šฉ
  • ๋กœ๊ทธ์ธ์‹œ์— ํŽ˜์ด์ง€ URL์— response_type=token ๋ผ๊ณ  ๋„˜๊น€

๐Ÿ“Œ3. Password Credentials Grant

  • Client์— ID/PW๋ฅผ ์ €์žฅํ•ด ๋†“๊ณ , ID/PW๋กœ ์ง์ ‘ accesstoken์„ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ์‹
  • Client๋ฅผ ๋ฏฟ์„ ์ˆ˜ ์—†์„ ๋•Œ์—๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ—˜ํ•ด APi ์„œ๋น„์Šค์˜ ๊ณต์‹ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” Client์— ํ•œํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ
  • ๋กœ๊ทธ์ธ์‹œ์— API์— POST๋กœ grant_type=credentails๋ผ๊ณ  ๋„˜๊น€

๐Ÿ“Œ4. Client Credentails Grant

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Confidentail Client์ผ ๋•Œ, ID์™€ Secret์„ ๊ฐ€์ง€๊ณ  ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ๋กœ๊ทธ์ธ์‹œ์— API์— POST๋กœ grant_type=client_credentails๋ผ๊ณ  ๋„˜๊น€

๐Ÿ•“ Token

๐Ÿ“ŒAccess Token

์•ž์„œ ๋งํ•œ 4๊ฐ€์ง€ ๋ฐฉ์‹ ๋ชจ๋‘ ์ •์ƒ์ ์ธ ์ธ์ฆ์„ ๋งˆ์น˜๋ฉด Access Token์ด ๋ฐœ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ์ด Token์€ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ๋•Œ ๊ถŒํ•œ ํ™•์ธ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ณ„์ • ID์™€ PW ๋“ฑ ๊ณ„์ • ์ธ์ฆ์— ํ•„์š”ํ•œ ํ˜•ํƒœ๋“ค์„ Token์œผ๋กœ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ, ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ธ์ฆ ๋ฐฉ์‹์— ๊ฐ๊ฐ ๋Œ€์‘ ํ•˜์ง€ ์•Š์•„๋„ ๊ถŒํ•œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ŒRefresh Token

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

๐Ÿ“Œํ† ํฐ์˜ ๊ฐฑ์‹  ๊ณผ์ •

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

๐Ÿ”…๋ ˆํผ๋Ÿฐ์Šค

profile
ํŒŒ์ด์ฌ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€