๐Ÿ”‘ OAuth๋ฅผ 5์‚ด ์•„์ด์—๊ฒŒ ์„ค๋ช…ํ•˜๋“ฏ์ด

๋ฐœํ–‰: (2026๋…„ 1์›” 1์ผ ์˜ค์ „ 07:23 GMT+9)
3 min read
์›๋ฌธ: Dev.to

Source: Dev.to

Valet Key Analogy

๊ณ ๊ธ‰ ๋ ˆ์Šคํ† ๋ž‘์— ๊ฐ€์„œ ์ฃผ์ฐจ๋ฅผ ์ง์ ‘ ์ฐพ๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ,
๋ฐœ๋ ˆ ํŒŒํ‚น ์ง์›์—๊ฒŒ ์ฐจ ์—ด์‡ ๋ฅผ ๊ฑด๋„ค์ง€๋งŒ ํŠธ๋ ํฌ๋ฅผ ์—ด๊ฑฐ๋‚˜ ์„ ๊ธ€๋ผ์Šค๋ฅผ ํ›”์น ๊นŒ ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…: ๋ฐœ๋ ˆ ํ‚ค โ€“ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ˆ˜ ํ‚ค:

  • โœ… ์ฐจ ์‹œ๋™์„ ๊ฑธ ์ˆ˜ ์žˆ์Œ
  • โœ… ์งง์€ ๊ฑฐ๋ฆฌ๋งŒ ์ด๋™ ๊ฐ€๋Šฅ
  • โŒ ํŠธ๋ ํฌ๋ฅผ ์—ด ์ˆ˜ ์—†์Œ
  • โŒ ๊ธ€๋Ÿฌ๋ธŒ ๋ฐ•์Šค๋ฅผ ์—ด ์ˆ˜ ์—†์Œ

OAuth๋„ ์›น์‚ฌ์ดํŠธ์—์„œ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์™œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ณต์œ ํ•˜๋ฉด ์•ˆ ๋ ๊นŒ?

์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•: ์•ฑ์— ํŠธ์œ„ํ„ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์คŒ.

  • ์•ฑ์ด ๋ชจ๋“  DM์„ ์ฝ์„ ์ˆ˜ ์žˆ์Œ.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ.
  • ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•ด ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์Œ.

์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•: OAuth ์‚ฌ์šฉ.

  1. ์•ฑ์ด ํŠธ์œ„ํ„ฐ์— ์ œํ•œ๋œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์š”์ฒญ.
  2. ํŠธ์œ„ํ„ฐ๊ฐ€ ๋‹น์‹ ์—๊ฒŒ โ€œ์ด ์•ฑ์ด ๋‹น์‹ ์„ ๋Œ€์‹ ํ•ด ๊ฒŒ์‹œํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?โ€ ๋ผ๊ณ  ๋ฌผ์Œ.
  3. ๋‹น์‹ ์ด ์˜ˆ๋ผ๊ณ  ๋‹ตํ•จ.
  4. ํŠธ์œ„ํ„ฐ๊ฐ€ ํ—ˆ์šฉ๋œ ๊ถŒํ•œ ๋‚ด์—์„œ๋งŒ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ํ† ํฐ์„ ๋ฐ˜ํ™˜.
  5. ์•ฑ์€ ํ† ํฐ์„ ์‚ฌ์šฉํ•ด ๊ฒŒ์‹œํ•˜๊ณ , ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ „ํ˜€ ์•Œ ์ˆ˜ ์—†์Œ.

OAuth Flow (Simplified)

App โ†’ Twitter: "I need to post for this user"
Twitter โ†’ User: "Do you allow this?"
User โ†’ Twitter: "Yes, allow posting"
Twitter โ†’ App: "Hereโ€™s a limited token"
App โ†’ Twitter: (uses token to post)

Key Takeaways

  • OAuth๋Š” ์•ฑ์ด ์ œํ•œ๋œ ๊ถŒํ•œ์œผ๋กœ ๋‹น์‹ ์˜ ๊ณ„์ •์— ์ ‘๊ทผํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  **์ธ์ฆ(authorization)**์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • โ€œContinue with Googleโ€์€ ์ข…์ข… OpenID Connect๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด๋Š” OAuth ์œ„์— ๊ตฌ์ถ•๋œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

JSON Web Token (JWT) ์ดํ•ดํ•˜๊ธฐ

์–ด๋–ค ์‹œ์ ์— ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ, ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์ธ์ฆ ์†”๋ฃจ์…˜์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ „๋žต์ด ์žˆ์œผ๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ดโ€ฆ

Heavstal Auth โ€” Heavstal Tech๋ฅผ ์œ„ํ•œ NextAuth Provider

๊ฐœ์š”: Heavstal Tech์šฉ ๊ณต์‹ NextAuth.js Auth.js ์ œ๊ณต์ž์ž…๋‹ˆ๋‹ค. โ€œSign in with Heavstalโ€์„ Next.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ˆ˜๋™์œผ๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Academic Suite ์ธ์ฆ ๋ฐ ์ธ๊ฐ€

3.1 Academic Suite์˜ ์ธ์ฆ ์ ‘๊ทผ ๋ฐฉ์‹ Academic Suite๋Š” JSON Web Token JWT๋ฅผ ์‚ฌ์šฉํ•œ stateless authentication ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. sessionโ€‘based authentication๊ณผ ๋‹ฌ๋ฆฌโ€ฆ