[Spring Security] Access Token+ Refresh Token์„ ์ด์šฉํ•œ ์ธ์ฆ

2023. 10. 19. 09:57ยทWeb & Android/Spring Security
๐Ÿ’ก Access Token+ Refresh Token์„ ์ด์šฉํ•œ ์ธ์ฆ
  • Access Token์„ ์ด์šฉํ•œ ์ธ์ฆ ๋ฐฉ์‹์˜ ๋ฌธ์ œ๋Š” ํ•ด์ปค์—๊ฒŒ ํƒˆ์ทจ๋‹นํ•  ๊ฒฝ์šฐ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ์ 
  • ํ† ํฐ์˜ ์œ ํšจ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋กœ๊ทธ์ธ์„ ์ž์ฃผ ํ•ด์•ผํ•ด์„œ ๋ฒˆ๊ฑฐ๋กญ๊ณ , ๊ธธ๊ฒŒํ•˜๋ฉด ๋ณด์•ˆ์ด ์ทจ์•ฝํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ•ด๊ฒจ๋ผ๊ณ ์ž ๋‚˜์˜จ ๊ฒƒ์ด Refresh Token
  • Refresh Token์€ Access Token๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ JWT
  • Refresh Token์€ Access Token๋ณด๋‹ค ๊ธด ์œ ํšจ๊ธฐ๊ฐ„์„ ๊ฐ€์ง€๊ณ , Access Token์ด ๋งŒ๋ฃŒ๋์„ ๋•Œ, ์ƒˆ๋กœ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” ์—ด์‡ ๊ฐ€ ๋จ

→ ex) Refresh Token์˜ ์œ ํšจ๊ธฐ๊ฐ„์ด 2์ฃผ, Access Token์˜ ์œ ํšจ๊ธฐ๊ฐ„์ด 1์‹œ๊ฐ„์ด๋ผ๋ฉด 2์ฃผ ๋™์•ˆ Access Token์ด ๋งŒ๋ฃŒ๋˜๋Š” 1์‹œ๊ฐ„ ์ฃผ๊ธฐ๋งˆ๋‹ค Access Token์„ ์ƒˆ๋กญ๊ฒŒ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

์ธ์ฆ ์ˆœ์„œ

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„์—์„œ๋Š” ํšŒ์› DB์—์„œ ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  3. ๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋˜๋ฉด Access Token, Refresh Token์„ ๋ฐœ๊ธ‰
  4. HTTP ์‘๋‹ต ํ—ค๋”์— ์‹ค์–ด ๋ณด๋ƒ„. ์ด๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ํšŒ์› DB์— Refresh Token์„ ์ €์žฅ
  5. ์‚ฌ์šฉ์ž๋Š” Refresh Token์„ ์•ˆ์ „ํ•œ ์ €์žฅ์†Œ์— ์ €์žฅ ํ›„, Access Token์„ HTTP ์š”์ฒญ ํ—ค๋”์— ์‹ค์–ด ์š”์ฒญ์„ ๋ณด๋ƒ„
  6. Access Token์„ ๊ฒ€์ฆ
  7. ์ด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ƒ„
  8. ์‹œ๊ฐ„์ด ์ง€๋‚˜ Access Token์ด ๋งŒ๋ฃŒ
  9. ์‚ฌ์šฉ์ž๋Š” ์ด์ „๊ณผ ๋™์ผํ•˜๊ฒŒ Access Token์„ HTTP ์š”์ฒญ ํ—ค๋”์— ์‹ค์–ด ๋ณด๋ƒ„
  10. ์„œ๋ฒ„๋Š” Access Token์ด ๋งŒ๋ฃŒ๋จ์„ ํ™•์ธ
  11. ๊ถŒํ•œ ์—†์Œ์„ ์‹ ํ˜ธ๋กœ ๋ณด๋ƒ„
  12. ์‚ฌ์šฉ์ž๋Š” Refresh Token๊ณผ Access Token์„ HTTP ์š”์ฒญ ํ—ค๋”์— ์‹ค์–ด ๋ณด๋ƒ„
  13. ์„œ๋ฒ„๋Š” ๋ฐ›์€ Access Token์ด ์กฐ์ž‘๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•œ ํ›„, HTTP ์š”์ฒญ ํ—ค๋”์˜ Refresh Token๊ณผ ์‚ฌ์šฉ์ž์˜ DB์— ์ €์žฅ๋˜์–ด ์žˆ๋˜ Refresh Token์„ ๋น„๊ต. Token์ด ๋™์ผํ•˜๊ณ  ์œ ํšจ๊ธฐ๊ฐ„๋„ ์ง€๋‚˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ƒˆ๋กœ์šด Access Token์„ ๋ฐœ๊ธ‰
  14. ์„œ๋ฒ„๋Š” ์ƒˆ๋กœ์šด Access Token์„ HTTP ์‘๋‹ต ํ—ค๋”์— ์‹ค์–ด ๋‹ค์‹œ API ์š”์ฒญ์„ ์ง„ํ–‰

์žฅ์ 

  • Access Token์˜ ์œ ํšจ ๊ธฐ๊ฐ„์ด ์งง๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ์กด์˜ Access Token๋งŒ์„ ์ด์šฉํ•œ ์ธ์ฆ๋ณด๋‹ค ์•ˆ์ „

๋‹จ์ 

  • ๊ตฌํ˜„์ด ๋ณต์žก
  • Access Token์ด ๋งŒ๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ๋ฐœ๊ธ‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ์„œ๋ฒ„์˜ ์ž์› ๋‚ญ๋น„๊ฐ€ ์ƒ๊น€
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Web & Android > Spring Security' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Security] OAuth 2.0์„ ์ด์šฉํ•œ ์ธ์ฆ  (1) 2023.10.19
[Spring Security] ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์‹ค์Šต - Web  (0) 2023.10.19
[Spring Security] Access Token์„ ์ด์šฉํ•œ ์ธ์ฆ  (0) 2023.10.19
[Spring Security] ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ  (0) 2023.10.17
[Spring Security] Form Login ๊ฐœ๋… & ์‚ฌ์šฉ๋ฒ•  (1) 2023.10.17
'Web & Android/Spring Security' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Spring Security] OAuth 2.0์„ ์ด์šฉํ•œ ์ธ์ฆ
  • [Spring Security] ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์‹ค์Šต - Web
  • [Spring Security] Access Token์„ ์ด์šฉํ•œ ์ธ์ฆ
  • [Spring Security] ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ
woojin._.
woojin._.
์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐœ๋ฐœ์„ ํ•ด๋ณด๋ฉฐ ๋ฐœ์ƒํ•˜๋Š” ์ด์•ผ๊ธฐ๋“ค์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • ์Šคํ”„๋ง ๋ถ€ํŠธ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • ๋ฆฌ๋ˆ…์Šค (7)
        • AWS (7)
      • Coding Test (445)
        • ๋ฐฑ์ค€[JAVA] (108)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JAVA] (260)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณ ๋“์  Kit[JAVA] (3)
        • SQL ๊ณ ๋“์  Kit[ORACLE] (74)
      • CS ์ง€์‹ (49)
        • [์ž๋ฃŒ๊ตฌ์กฐ] (14)
        • [๋„คํŠธ์›Œํฌ] (12)
        • [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] (10)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜] (9)
        • [์šด์˜์ฒด์ œ] (4)
      • ๊ธฐํƒ€ (6)
      • ์ž๊ฒฉ์ฆ & ๊ณต๋ถ€ (62)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (2)
        • SQLD (6)
        • ๋„คํŠธ์›Œํฌ๊ด€๋ฆฌ์‚ฌ 2๊ธ‰ (5)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (44)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ (1)
        • ISTQB (3)
        • ์‹œ์Šคํ…œ๋ณด์•ˆ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์Šคํ”„๋ง
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰
    Flutter
    ๋ฆฌ๋ˆ…์Šค
    baekjoon
    CS์ง€์‹
    springboot
    Spring Security
    ๋ฐฑ์ค€
    programmers
    JPA
    Oracle
    ์Šคํ”„๋ง๋ถ€ํŠธ
    ์ž๋ฐ”
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ํ”Œ๋Ÿฌํ„ฐ
    Linux
    postgresql
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    backjoon
    python
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๋ฐ์ดํ„ฐ
    spring
    ์‹œํ๋ฆฌํ‹ฐ
    DB
    pcce ๊ธฐ์ถœ๋ฌธ์ œ
    Java
    ์Šคํ”„๋ง ๋ถ€ํŠธ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ with JPA
    CS
  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
woojin._.
[Spring Security] Access Token+ Refresh Token์„ ์ด์šฉํ•œ ์ธ์ฆ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”