HTTP ์ธ์ฆ ๋ฐฉ์‹

์›น ์„œ๋น„์Šค์—์„œ ์ธ์ฆ์€ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ์š”์†Œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹น์—ฐํžˆ ์ด๊ฒŒ ๋šซ๋ฆฌ๊ฑฐ๋‚˜ ๋…ธ์ถœ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๊ฐœ์ธ์ •๋ณด๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ž์‚ฐ๊นŒ์ง€๋„ ํ„ธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค...

HTTP ํ‘œ์ค€ ๊ทœ์•ฝ์—์„œ ์ •์˜ํ•œ ์ธ์ฆ ์ฒ˜๋ฆฌ ํŒจํ„ด๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.




URL์— ๋•Œ๋ ค๋ฐ•๊ธฐ

https://์•„์ด๋””:ํŒจ์Šค์›Œ๋“œ@foo.com ๊ฐ™์€ ํ˜•ํƒœ๋กœ URL์— ๊ณ„์ • ์ •๋ณด๋ฅผ ๋•Œ๋ ค๋ฐ•๋Š” ์ ‘๊ทผ๋ฒ•์ด ์žˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜์ง„ ์•Š๊ณ , ๋ณด์•ˆ์ƒ ์œ„ํ—˜ํ•œ ์ ์ด ๋งŽ์•„์„œ ๋น„์ถ”์ฒœ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์—์„œ ์ง€์›๋˜๋Š”๊ฑฐ๋ผ์„œ URL ํŒŒ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ๋‹นํžˆ ๊ฐ€์ ธ์™€์„œ ์จ๋จน์„ ์ˆ˜ ์žˆ๋‹ค.

Github์€ ์•„์ง๋„ ์ด ์ธ์ฆ๋ฒ•์„ ์ž˜ ์ œ๊ณตํ•œ๋‹ค..




Authorization ํ—ค๋”

๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์ฆ์— ๋Œ€ํ•œ ๊ฐ’์€ authorization์ด๋ผ๋Š” ์ž„์˜์˜ ํ—ค๋”๋กœ ๋„˜๊ฒจ์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ตญ๋ฃฐ์ด๋‹ค.
์ด๊ฒŒ ์•„๋‹ˆ๋ฉด ์ฟ ํ‚ค๋‹ค.

์ด๋Ÿฐ ์‹์ด๋‹ค. ์ด๊ฒŒ bearer ์ธ์ฆ์ธ๋ฐ, ์ฐจ์ฐจ ๋ฐ‘์—์„œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.




Authorization: basic ์ธ์ฆ

์ด๊ฑด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ์ธ์ฆ์ฒด๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ณ„๊ฑด ์—†๊ณ , ๊ทธ๋ƒฅ ์•„์ด๋””๋ž‘ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ•์•„์„œ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ƒฅ ๋ณด๋‚ด์ง€๋Š” ์•Š๊ณ  atob(${์•„์ด๋””}:${ํŒจ์Šค์›Œ๋“œ})์˜ ํ˜•ํƒœ๋กœ base64 ์ธ์ฝ”๋”ฉ์„ ํ•ด์„œ ๊ทธ ํ…์ŠคํŠธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

๏ปฟAuthorization: basic ๏ปฟatob(`${์•„์ด๋””}:${ํŒจ์Šค์›Œ๋“œ}`)

ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ•ํ˜€์„œ ๋ณด๋‚ด์ง€๋‹ˆ ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ—ค๋”๋„ ์•”ํ˜ธํ™”๋˜๋‹ˆ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค.

๋‹จ์ˆœํ•˜๊ณ  ์‰ฝ์ง€๋งŒ ์ข€ ๊ตฌ์‹œ๋Œ€์ ์ธ ๋ฐฉ์‹์ด๋ผ ๋‹จ์ ๋„ ๋งŽ์€๋ฐ, ๋ณด์•ˆ์ ์ธ ์กฐ์น˜๋กœ ๊ธฐ์กด ๋กœ๊ทธ์ธ์„ ๋ฌดํšจํ™”ํ•˜๊ฑฐ๋‚˜ ํ•˜๋ ค๋ฉด ์„ธ์…˜์„ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•œ๋‹ค.




Authorization: bearer ์ธ์ฆ

์ธ์ฆ ์ฒ˜๋ฆฌ์— ์žˆ์–ด์„œ๋Š” ์ด๊ฒŒ ๋Œ€์„ธ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
JWT ๊ฐ™์€๊ฑธ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ž„์‹œ ์ธ๊ฐ€ ํ† ํฐ์„ ๋„ฃ์–ด์„œ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด๋ฅผํ…Œ๋ฉด ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด ๋กœ๊ทธ์ธ ์œ ์ง€๋ฅผ ์œ„ํ•œ "1์‹œ๊ฐ„์งœ๋ฆฌ ํ† ํฐ"์„ ๋ฐ›๊ณ  ๊ทธ๊ฑธ ๋ณด๋‚ด์„œ 1์‹œ๊ฐ„๋™์•ˆ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

Authorization: Bearer ํ† ํฐ๊ฐ’

์งง์€ ์œ ํšจ์‹œ๊ฐ„์€ "refresh Token" ๊ฐ™์€ ์„ธ์…˜ ๊ฐœ๋…์„ ๋„์ž…ํ•ด์„œ ๋ณด์™„ํ•˜๊ณค ํ•œ๋‹ค.




์ฟ ํ‚ค

ํ‘œ์ค€์ ์ด๊ฑฐ๋‚˜ ์ ๊ทน ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง„ ์•„๋‹ˆ์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋งŽ์€ ์‚ฌ์ดํŠธ๋“ค์€ ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด์„œ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค.
๋‹น์žฅ ๋„ค์ด๋ฒ„๋งŒ ํ•ด๋„ ์ด๋ ‡๊ฒŒ

NID_AUT๋ผ๋Š” ์ธ์ฆ๊ฐ’์„ ์ฟ ํ‚ค์— ๋ฐ•์•„๋„ฃ๊ณ  ์š”์ฒญํ• ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์— ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ํ•œ๋‹ค.

์ฟ ํ‚ค์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์€ ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋”ฐ๋ผ์„œ JWT ๊ฐ™์€ ์ž„์‹œ ํ† ํฐ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์„œ๋ฒ„ ์„ธ์…˜๊ณผ ์—ฐ๊ด€๋œ ๊ฐ’์ผ ์ˆ˜๋„ ์žˆ๋‹ค.



์ฐธ์กฐ
https://developer.mozilla.org/ko/docs/Web/HTTP/Authentication
https://velog.io/@tosspayments/Basic-%EC%9D%B8%EC%A6%9D%EA%B3%BC-Bearer-%EC%9D%B8%EC%A6%9D%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83