Skip to content

mon99745/TokenReference

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Json Web Token, JwtsReference

์ด ํ”„๋กœ์ ํŠธ๋Š” io.jsonwebtoken:jjwt-api ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ JwtProvider ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ฒฐ๊ณผ๋ฌผ์ด๋ฉฐ, Json Web Token์„ ์ปค์Šคํ…€ ๋ฐœํ–‰ ๋ฐ ๊ฒ€์ฆํ•˜์—ฌ ๊ด€๋ จ ์นดํ…Œ๊ณ ๋ฆฌ ๊ฐœ๋ฐœ์˜ ์‹œ๊ฐ„ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค์™€ ์„ค์ • ํŒŒ์ผ์˜ ๊ทœ๊ฒฉ์„ ํ†ต์ผํ•˜์—ฌ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ๊ณผ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉํ‘œ๋กœ ์ฆ๊ฐ€ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ชฉํ‘œ๋กœ ์ถ”์ง„ํ•œ๋‹ค.

The ultimate goal:

  • Json Web Token ๋ฐœ๊ธ‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ io.jsonwebtoken:jjwt-* ๋ฅผ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค.
  • Json Web Token ๋ฐœ๊ธ‰๊ณผ ๊ฒ€์ฆ์— ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋ฅผ ๋‹ด์•„ ์ปค์Šคํ…€ ์‚ฌ์šฉ์„ฑ์„ ํ™•์žฅํ•˜๊ณ , ์ด๋ฅผ ์šฉ์ดํ•˜๋„๋ก ํ•œ๋‹ค.

Release

Process

Guides

  1. HTTP ํ†ต์‹  ๋ฐฉ์‹ (API ํ˜ธ์ถœ)
    1. API ํ˜ธ์ถœ ๊ฐ€์ด๋“œ
    2. API Method List
    3. API Response Format
    4. API ์ƒ์„ธ์„ค๋ช…
      1. ํ† ํฐ ๋ฐœํ–‰
      2. ํ† ํฐ ๊ฒ€์ฆ
      3. ํ† ํฐ ์ •๋ณด ์ถ”์ถœ

HTTP ํ†ต์‹  ๋ฐฉ์‹ (API ํ˜ธ์ถœ)

1. API ํ˜ธ์ถœ ๊ฐ€์ด๋“œ

  • ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ HTTP ํ†ต์‹ ํ•˜์—ฌ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰.

2. API Method List

Method Name HTTP Method Description
api/v1/createToken POST ํ† ํฐ ๋ฐœํ–‰
api/v1/verifyToken POST ํ† ํฐ ๊ฒ€์ฆ
api/v1/extractClaim POST ํ† ํฐ ์ •๋ณด ์ถ”์ถœ

3. API Response Format

Key Value Description
claim Map<String, String> ํ† ํฐ ์ •๋ณด ํฌํ•จ๋˜๋Š” ๋ฐ์ดํ„ฐ
(ํ† ํฐ ๊ฒ€์ฆ ์‹œ ์ œ์™ธ)
jwt String ํ† ํฐ
resultCode String ๊ฒฐ๊ณผ ์ฝ”๋“œ
resultMsg String ๊ฒฐ๊ณผ ๋ฉ”์‹œ์ง€
{
   "claim": {
      "ci": "12345678",
      "role": "user",
      "username": "test_user",
      "password": "[VK+SJA26vJFCuDL/kPYAQ073GZTmTOpAbi5izZ10AFx3NlDDW6brVoBOeFlfA5hxHeOQw+Pz+M/XN.."
   },
   "jwt": "e29JzDyi.mwVQotk9DFqLwPpLw8TutiwiX6x4XQUrYtngFyoC7VPVs1txq54NGuzWbHt12rGbA6nnetYSnAinJRpVRzjyXj3GogWjwb2FMeYPshrZFhpaVvJFy2g39FcNusGHoHH5uBcmdEvme6g2crSuNKXbtsaREbakFtGu4oCk7CuVvz1XoAoc43Lc1hAbdU2VReEF7wxsKYQQLk.Ou+L/qyvpu8ssLpZ+qtDOYRQvHEcT/Qvq86KPapmXugS3SvZPnTnZdjzAB+Kcfd+bZX+OjXMBprUQHId25oD5OVK9XVq+3p839qpiJrbdYx6jWG7R5FhlQzQsH2CZezizUEkUlpc5Q38CNN3eJEZAOkO0TXhyMSyUkKyrMVDdVcLdJEzEXTVhwIICfG/+JCziI7/ijqBfSlGE4yB+14tfV2Ks2LdjfXf65zphz1Wm43oP2jzPFvreKta1twUKvhzKLAiYsxMD+kuL14zOJvYQJlnGozZG4rJT8qZUEVMglbCuoeqmXzmAUSGOcg6uaIN2/uPFT4oOgkmAkC5bvKw2g==",
   "resultCode": "200",
   "resultMsg": "Success"
}

4. API ์ƒ์„ธ์„ค๋ช…

a. ํ† ํฐ ๋ฐœํ–‰

  • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํ†ตํ•ด ํ† ํฐ์„ ๋ฐœํ–‰ํ•œ๋‹ค.
  • ๋ฉ”์†Œ๋“œ๋ช… : api/v1/createToken
Request Type Value Description
POST JSONObject JSONObject

1-2) Request Parameters

  • ํ† ํฐ์— ๋‹ด๊ธฐ๋Š” ์ •๋ณด๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค(์•„๋ž˜์˜ ํ•„๋“œ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฌด๊ด€)
Key Value Description
ci String ๊ตฌ๋ถ„ ์ฝ”๋“œ ๊ฐ’
role String ์‚ฌ์šฉ์ž ๊ถŒํ•œ
username String ์‚ฌ์šฉ์ž ์•„์ด๋””
password String ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ๋“œ
(ํ‰๋ฌธ/์•”ํ˜ธ๋ฌธ ๋ฌด๊ด€)
... Primitive Types ์‚ฌ์šฉ์ž ์ •๋ณด
{
  "ci": "12345678",
  "role" : "user",
  "username" : "test_user",
  "password" : "[VK+SJA26vJFCuDL/kPYAQ073GZTmTOpAbi5izZ10AFx3NlDDW6brVoBOeFlfA5hxHeOQw+Pz+M/XN.."
}

b. ํ† ํฐ ๊ฒ€์ฆ

  • ์‚ฌ์šฉ์ž์˜ ํ† ํฐ์„ ๊ฒ€์ฆํ•œ๋‹ค.
  • ๋ฉ”์†Œ๋“œ๋ช… : api/v1/verifyToken
Request Type Value Description
POST JSONObject JSONObject

1-2) Request Parameters

Key Value Description
jwt String ํ† ํฐ ๊ฐ’
{
    "jwt": "e29JzDyi.mwVQotk9DFqLwPpLw8TutiwiX6x4XQUrYtngFyoC7VPVs1txq54NGuzWbHt12rGbA6nnetYSnAinJRpVRzjyXj3GogWjwb2FMeYPshrZFhpaVvJFy2g39FcNusGHoHH5uBcmdEvme6g2crSuNKXbtsaREbakFtGu4oCk7CuVvz1XoAoc43Lc1hAbdU2VReEF7wxsKYQQLk.Ou+L/qyvpu8ssLpZ+qtDOYRQvHEcT/Qvq86KPapmXugS3SvZPnTnZdjzAB+Kcfd+bZX+OjXMBprUQHId25oD5OVK9XVq+3p839qpiJrbdYx6jWG7R5FhlQzQsH2CZezizUEkUlpc5Q38CNN3eJEZAOkO0TXhyMSyUkKyrMVDdVcLdJEzEXTVhwIICfG/+JCziI7/ijqBfSlGE4yB+14tfV2Ks2LdjfXf65zphz1Wm43oP2jzPFvreKta1twUKvhzKLAiYsxMD+kuL14zOJvYQJlnGozZG4rJT8qZUEVMglbCuoeqmXzmAUSGOcg6uaIN2/uPFT4oOgkmAkC5bvKw2g=="
}

c. ํ† ํฐ ์ •๋ณด ์ถ”์ถœ

  • ์‚ฌ์šฉ์ž์˜ ํ† ํฐ์„ ํ†ตํ•ด ๋‚ด๋ถ€ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•œ๋‹ค.
  • ํ•ด๋‹น ํ† ํฐ์€ ๋งŒ๋ฃŒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ์„œ๋ช… ๊ฒ€์ฆ๋งŒ ํ†ต๊ณผํ•˜๋ฉด ๋‚ด๋ถ€ ์ •๋ณด(ํด๋ ˆ์ž„)์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ”์†Œ๋“œ๋ช… : api/v1/extractClaim
Request Type Value Description
POST JSONObject JSONObject

1-2) Request Parameters

Key Value Description
jwt String ํ† ํฐ ๊ฐ’
{
    "jwt": "e29JzDyi.mwVQotk9DFqLwPpLw8TutiwiX6x4XQUrYtngFyoC7VPVs1txq54NGuzWbHt12rGbA6nnetYSnAinJRpVRzjyXj3GogWjwb2FMeYPshrZFhpaVvJFy2g39FcNusGHoHH5uBcmdEvme6g2crSuNKXbtsaREbakFtGu4oCk7CuVvz1XoAoc43Lc1hAbdU2VReEF7wxsKYQQLk.Ou+L/qyvpu8ssLpZ+qtDOYRQvHEcT/Qvq86KPapmXugS3SvZPnTnZdjzAB+Kcfd+bZX+OjXMBprUQHId25oD5OVK9XVq+3p839qpiJrbdYx6jWG7R5FhlQzQsH2CZezizUEkUlpc5Q38CNN3eJEZAOkO0TXhyMSyUkKyrMVDdVcLdJEzEXTVhwIICfG/+JCziI7/ijqBfSlGE4yB+14tfV2Ks2LdjfXf65zphz1Wm43oP2jzPFvreKta1twUKvhzKLAiYsxMD+kuL14zOJvYQJlnGozZG4rJT8qZUEVMglbCuoeqmXzmAUSGOcg6uaIN2/uPFT4oOgkmAkC5bvKw2g=="
}