Learn-json-web-tokens: JWTλ₯Ό μ‚¬μš©ν•˜λŠ” API ν…ŒμŠ€νŠΈ

에 λ§Œλ“  2015λ…„ 07μ›” 08일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: dwyl/learn-json-web-tokens

μ œκ°€ 배울 수 μžˆλŠ” μ§ˆλ¬Έμ„ ν•˜κΈ°μ— μ μ ˆν•œ μž₯μ†Œμ˜€μœΌλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€! μ €λŠ” ν…ŒμŠ€νŠΈλ₯Ό 처음 μ ‘ν–ˆκ³  ν…ŒμŠ€νŠΈ μ œν’ˆκ΅°μ΄ μ œκ³΅ν•˜λŠ” λͺ¨λ“  이점에 맀우 관심이 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ””μ„œλΆ€ν„° μ‹œμž‘ν•΄μ•Ό 할지 막막할 수 μžˆμŠ΅λ‹ˆλ‹€.

인증에 JWTλ₯Ό μ‚¬μš©ν•˜λŠ” APIκ°€ μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ ν™˜κ²½μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ„€μ •ν•˜λŠ” 방법에 λŒ€ν•œ 높은 μˆ˜μ€€μ˜ μ„€λͺ…에 관심이 μžˆμŠ΅λ‹ˆλ‹€. 컨트둀러λ₯Ό λ‹¨μœ„ ν…ŒμŠ€νŠΈν•  λ•Œ λ™μ‹œμ— 인증을 ν…ŒμŠ€νŠΈν•˜κ³  싢지 μ•Šλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. 401을 얻지 μ•Šκ³  λ‚΄ μ—”λ“œν¬μΈνŠΈλ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆλ„λ‘ 인증을 μ‘°λ‘±ν•˜λŠ” 방법이 ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@rhewitt22 μš°λ¦¬λŠ” @walling이 μ„€λͺ…ν•œ μ ‘κ·Ό 방식을 μ„ ν˜Έν•©λ‹ˆλ‹€.
(μ—¬κΈ°μ„œ ν…ŒμŠ€νŠΈλŠ” "λ‹¨μœ„" ν…ŒμŠ€νŠΈ λŒ€μ‹  "톡합"κ³Ό 더 μœ μ‚¬ν•¨)
_μ •ν™•νžˆ_ 그런 이유둜. 당신이 μ‘°λ‘±ν•˜λŠ” λͺ¨λ“  것은 "_fake_"μ΄λ―€λ‘œ "_real_"이 μž‘λ™ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€(_κ·Έλž˜μ„œ 버그가 더 κ°€λŠ₯성이 λ†’μŠ΅λ‹ˆλ‹€_).

μš°λ¦¬λŠ” μ‚¬λžŒλ“€μ΄ λ©”μ†Œλ“œλ₯Ό λ³€κ²½ν•  λ•Œ λͺ¨μ˜ μ—…λ°μ΄νŠΈλ₯Ό _μžŠμ–΄λ²„λ¦¬κ³  결과적으둜 ν…ŒμŠ€νŠΈκ°€ _ν˜„μ‹€_을 λ°˜μ˜ν•˜μ§€ μ•ŠλŠ” (_large_) ν”„λ‘œμ νŠΈλ₯Ό μƒμ†λ°›μ•˜μŠ΅λ‹ˆλ‹€. _ λ””λ²„κΉ…ν•˜λŠ” μ•…λͺ½ _!

항상 μŠ€μŠ€λ‘œμ—κ²Œ λ¬Όμ–΄λ³΄μ‹­μ‹œμ˜€. "_( μ™œ ) 우리 κ°€ 이것을 μ‘°λ‘±ν•΄μ•Ό ν•©λ‹ˆκΉŒ?_"

제3자 μ„œλΉ„μŠ€λ‚˜ λ„€νŠΈμ›Œν¬ μž₯μΉ˜μ™€ 같이 ν†΅μ œν•  수 μ—†κΈ° λ•Œλ¬Έμ— μ‘°λ‘±ν•˜λŠ” 경우,
말이 λ˜λŠ”κ΅°μš”. ν•˜μ§€λ§Œ μžμ‹ μ˜ _μžμ‹ μ˜ μŠ€νƒμ„ _μ‘°λ‘±ν•˜κ³  μžˆλ‹€λ©΄ 일이 λ„ˆλ¬΄ λ³΅μž‘ν•  수 μžˆλ‹€λŠ” 점을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€...

κ·€ν•˜μ˜ _question_의 λ‹¨μ„œλŠ” " _API _"λΌλŠ” μš©μ–΄μ— μžˆμŠ΅λ‹ˆλ‹€. 이것은 "λ‹¨μœ„"κ°€ μ•„λ‹ˆλΌ (API) "_ endpoint _"λ₯Ό ν…ŒμŠ€νŠΈν•˜κ³  μžˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

끝점에 λ„λ‹¬ν•˜λ©΄ 401이 ν‘œμ‹œλ˜λ©΄ _인증_ν•΄μ•Ό ν•©λ‹ˆλ‹€! (_쒋은 μ†Œμ‹! 앱이 μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€!_)

λ‹€μŒμ€ _ 당신이 ν•„μš”λ‘œ ν•˜λŠ” 것을 _ ν•˜λŠ” ν…ŒμŠ€νŠΈμ˜ _ μ‹€μ œμ μΈ 예 μž…λ‹ˆλ‹€.
https://github.com/dwyl/hapi-auth-jwt2/blob/f17bac65d40b2a9154da84390b874cae4e1de192/test/test.js#L119 -L135

κ·Έλ ‡λ‹€λ©΄ λ‹€μŒμ„ μ½λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

헐 박사

_μžμ‹ μ˜_ μ½”λ“œκ°€ λ„ˆλ¬΄ λ³΅μž‘ν•˜κ³  그것을 μ‘°λ‘±ν•  _ν•„μš”_λ₯Ό λŠλ‚€λ‹€λ©΄ _λ¨Όμ € μ½”λ“œλ₯Ό λ‹¨μˆœν™” _!!

λ˜ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ 우리의 ν…ŒμŠ€νŠΈμ— μ˜μ‘΄ν•  수 μžˆλ„λ‘ hapi-auth-jwt2 ν”ŒλŸ¬κ·ΈμΈ 을 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 _linear ν™•μž₯ κ°€λŠ₯_ Redis 지원 예제λ₯Ό μΆœμ‹œν–ˆμŠ΅λ‹ˆλ‹€: https://github.com/dwyl/hapi-auth-jwt2-example κ·Έλž˜μ„œ μ‚¬λžŒλ“€μ΄ μ½”λ“œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ 뢙여넣을 수 μžˆμŠ΅λ‹ˆλ‹€(_tested_)! :λˆˆμ§“:

_We_λŠ” μ‘°λ‘± ν•  λ•Œ 우리의 μ‹œν—˜ "λ„ˆλ¬΄ 느린 _feel _"그렇지 μ•ŠμœΌλ©΄ 우리 각 ν…ŒμŠ€νŠΈ 톡과에 _possible_둜 μŠ€νƒλ§ŒνΌ _ALWAYS_ μš΄λ™ (단지 _essential_에 λŒ€ν•œ μ˜μ‘΄μ„±μ„ μ œν•œν•˜λ©΄μ„œ).

μ•± κΈ°λŠ₯의 μš”μ†Œμ— 인증이 ν•„μš”ν•œ 경우 인증/확인 방법을 _μ‹€ν–‰_ν•  _기회_둜 이λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ? ꢁ극적으둜 인증/검증이 μŠ€νƒμ—μ„œ κ°€μž₯ 큰 병λͺ© ν˜„μƒ 쀑 ν•˜λ‚˜μ΄κΈ° λ•Œλ¬Έμ— 인증이 μ–Όλ§ˆλ‚˜ _μ„±λŠ₯이 쒋은__ μ•Œλ©΄ 앱에 _쒋은_ κ²ƒμž…λ‹ˆλ‹€! (즉 _λͺ¨λ“ _ GET/POST/PUT/DELETE _request_λŠ” 인증/검증을 거쳐야 ν•˜λ―€λ‘œ λͺ‡ λ°€λ¦¬μ΄ˆ 이상 걸리지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€... κ·Έ 이상은 앱이 _ν™•μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€_!)

κΈ°μ–΅ν•˜μ‹­μ‹œμ˜€ : _ 아무것도 κ°€μ •ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€_. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν…ŒμŠ€νŠΈν•˜λŠ” 것이 μ–΄λ–»κ²Œ μ˜λ―Έκ°€ μžˆλŠ”μ§€ 슀슀둜 κ²°μ •ν•˜μ‹­μ‹œμ˜€. ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” "μ˜¬λ°”λ₯Έ 방법"이 μžˆλ‹€λ©΄ λͺ¨λ“  λŒ€ν•™μ—μ„œ 그것을 κ°€λ₯΄μΉ  κ²ƒμž…λ‹ˆλ‹€. "κ°€μž₯ 쒋은 방법"은 "_pragmatic_" μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€. _your_ ν”„λ‘œμ νŠΈμ— μ˜λ―Έκ°€ μžˆλŠ” 일을 ν•˜μ„Έμš”.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€. 그렇지 μ•Šμ€ 경우 μ–΄λ””μ—μ„œ λ§‰ν˜”λŠ”μ§€ μ•Œλ €μ£Όμ‹­μ‹œμ˜€! :+1:

λͺ¨λ“  5 λŒ“κΈ€

κΈ€μŽ„, λ‚˜λŠ” νš¨κ³Όκ°€ μžˆμ„ 수 μžˆλŠ” λͺ‡ 가지 μ œμ•ˆμ΄ μžˆμŠ΅λ‹ˆλ‹€:

  1. μ‹œμŠ€ν…œμ— _test_ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ„€μ •ν•˜κ³  ν…ŒμŠ€νŠΈμ—μ„œ 토큰을 ν•˜λ“œμ½”λ”©ν•©λ‹ˆλ‹€. 인증을 계속 μΌœμ‹­μ‹œμ˜€.
  2. ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  λ•Œ 인증이 κΊΌμ Έ μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€. λ‹€μ–‘ν•œ 방법이 μžˆλŠ” 것 κ°™μ•„μš”. 예λ₯Ό λ“€μ–΄ Hapi μ—μ„œλŠ” κΈ°λ³Έ 인증 체계λ₯Ό μƒλž΅ν•˜κ³  μ„œλ²„κ°€ μ‹€μ œλ‘œ 싀행될 λ•Œ ν•˜λ‚˜λ§Œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€(ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  λ•ŒλŠ” μ œμ™Έ).
  3. μŠ€νƒμ„ μ‘°λ‘±ν•˜μ—¬ μ‹œμŠ€ν…œμ„ 톡해 μš”μ²­ν•˜μ§€ μ•Šκ³  컨트둀러 λ…Όλ¦¬λ§Œ λ‹¨μœ„ ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 일뢀 ν”„λ ˆμž„μ›Œν¬μ—μ„œλŠ” μ‹€ν˜„ κ°€λŠ₯ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” (1)을 μ„ νƒν•œ 일뢀 μ‹œμŠ€ν…œμ—μ„œ μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ ν…ŒμŠ€νŠΈλŠ” μŠ€νƒμ„ 톡해 μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ μ•„λ‹ˆλΌ 톡합 ν…ŒμŠ€νŠΈμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. 반면 ν…ŒμŠ€νŠΈ ν™˜κ²½κ³Ό ν”„λ‘œλ•μ…˜ ν™˜κ²½ μ‚¬μ΄μ—λŠ” 차이가 μ—†μŠ΅λ‹ˆλ‹€.

μ½”λ“œμ—μ„œ ν™˜κ²½μ„ ν™•μΈν•˜λ €λŠ” 경우 ν…ŒμŠ€νŠΈ(fx. -e λ§€κ°œλ³€μˆ˜ in lab )λ₯Ό μ‹€ν–‰ν•  λ•Œ NODE_ENV=test μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν…ŒμŠ€νŠΈ ν™˜κ²½κ³Ό ν”„λ‘œλ•μ…˜ ν™˜κ²½μ΄ 크게 λ‹€λ₯΄μ§€ μ•Šλ‹€λŠ” 점을 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μ‹€μ œλ‘œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ„ ν…ŒμŠ€νŠΈν•˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€.

@rhewitt22 μš°λ¦¬λŠ” @walling이 μ„€λͺ…ν•œ μ ‘κ·Ό 방식을 μ„ ν˜Έν•©λ‹ˆλ‹€.
(μ—¬κΈ°μ„œ ν…ŒμŠ€νŠΈλŠ” "λ‹¨μœ„" ν…ŒμŠ€νŠΈ λŒ€μ‹  "톡합"κ³Ό 더 μœ μ‚¬ν•¨)
_μ •ν™•νžˆ_ 그런 이유둜. 당신이 μ‘°λ‘±ν•˜λŠ” λͺ¨λ“  것은 "_fake_"μ΄λ―€λ‘œ "_real_"이 μž‘λ™ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€(_κ·Έλž˜μ„œ 버그가 더 κ°€λŠ₯성이 λ†’μŠ΅λ‹ˆλ‹€_).

μš°λ¦¬λŠ” μ‚¬λžŒλ“€μ΄ λ©”μ†Œλ“œλ₯Ό λ³€κ²½ν•  λ•Œ λͺ¨μ˜ μ—…λ°μ΄νŠΈλ₯Ό _μžŠμ–΄λ²„λ¦¬κ³  결과적으둜 ν…ŒμŠ€νŠΈκ°€ _ν˜„μ‹€_을 λ°˜μ˜ν•˜μ§€ μ•ŠλŠ” (_large_) ν”„λ‘œμ νŠΈλ₯Ό μƒμ†λ°›μ•˜μŠ΅λ‹ˆλ‹€. _ λ””λ²„κΉ…ν•˜λŠ” μ•…λͺ½ _!

항상 μŠ€μŠ€λ‘œμ—κ²Œ λ¬Όμ–΄λ³΄μ‹­μ‹œμ˜€. "_( μ™œ ) 우리 κ°€ 이것을 μ‘°λ‘±ν•΄μ•Ό ν•©λ‹ˆκΉŒ?_"

제3자 μ„œλΉ„μŠ€λ‚˜ λ„€νŠΈμ›Œν¬ μž₯μΉ˜μ™€ 같이 ν†΅μ œν•  수 μ—†κΈ° λ•Œλ¬Έμ— μ‘°λ‘±ν•˜λŠ” 경우,
말이 λ˜λŠ”κ΅°μš”. ν•˜μ§€λ§Œ μžμ‹ μ˜ _μžμ‹ μ˜ μŠ€νƒμ„ _μ‘°λ‘±ν•˜κ³  μžˆλ‹€λ©΄ 일이 λ„ˆλ¬΄ λ³΅μž‘ν•  수 μžˆλ‹€λŠ” 점을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€...

κ·€ν•˜μ˜ _question_의 λ‹¨μ„œλŠ” " _API _"λΌλŠ” μš©μ–΄μ— μžˆμŠ΅λ‹ˆλ‹€. 이것은 "λ‹¨μœ„"κ°€ μ•„λ‹ˆλΌ (API) "_ endpoint _"λ₯Ό ν…ŒμŠ€νŠΈν•˜κ³  μžˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

끝점에 λ„λ‹¬ν•˜λ©΄ 401이 ν‘œμ‹œλ˜λ©΄ _인증_ν•΄μ•Ό ν•©λ‹ˆλ‹€! (_쒋은 μ†Œμ‹! 앱이 μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€!_)

λ‹€μŒμ€ _ 당신이 ν•„μš”λ‘œ ν•˜λŠ” 것을 _ ν•˜λŠ” ν…ŒμŠ€νŠΈμ˜ _ μ‹€μ œμ μΈ 예 μž…λ‹ˆλ‹€.
https://github.com/dwyl/hapi-auth-jwt2/blob/f17bac65d40b2a9154da84390b874cae4e1de192/test/test.js#L119 -L135

κ·Έλ ‡λ‹€λ©΄ λ‹€μŒμ„ μ½λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

헐 박사

_μžμ‹ μ˜_ μ½”λ“œκ°€ λ„ˆλ¬΄ λ³΅μž‘ν•˜κ³  그것을 μ‘°λ‘±ν•  _ν•„μš”_λ₯Ό λŠλ‚€λ‹€λ©΄ _λ¨Όμ € μ½”λ“œλ₯Ό λ‹¨μˆœν™” _!!

λ˜ν•œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ 우리의 ν…ŒμŠ€νŠΈμ— μ˜μ‘΄ν•  수 μžˆλ„λ‘ hapi-auth-jwt2 ν”ŒλŸ¬κ·ΈμΈ 을 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 _linear ν™•μž₯ κ°€λŠ₯_ Redis 지원 예제λ₯Ό μΆœμ‹œν–ˆμŠ΅λ‹ˆλ‹€: https://github.com/dwyl/hapi-auth-jwt2-example κ·Έλž˜μ„œ μ‚¬λžŒλ“€μ΄ μ½”λ“œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ 뢙여넣을 수 μžˆμŠ΅λ‹ˆλ‹€(_tested_)! :λˆˆμ§“:

_We_λŠ” μ‘°λ‘± ν•  λ•Œ 우리의 μ‹œν—˜ "λ„ˆλ¬΄ 느린 _feel _"그렇지 μ•ŠμœΌλ©΄ 우리 각 ν…ŒμŠ€νŠΈ 톡과에 _possible_둜 μŠ€νƒλ§ŒνΌ _ALWAYS_ μš΄λ™ (단지 _essential_에 λŒ€ν•œ μ˜μ‘΄μ„±μ„ μ œν•œν•˜λ©΄μ„œ).

μ•± κΈ°λŠ₯의 μš”μ†Œμ— 인증이 ν•„μš”ν•œ 경우 인증/확인 방법을 _μ‹€ν–‰_ν•  _기회_둜 이λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ? ꢁ극적으둜 인증/검증이 μŠ€νƒμ—μ„œ κ°€μž₯ 큰 병λͺ© ν˜„μƒ 쀑 ν•˜λ‚˜μ΄κΈ° λ•Œλ¬Έμ— 인증이 μ–Όλ§ˆλ‚˜ _μ„±λŠ₯이 쒋은__ μ•Œλ©΄ 앱에 _쒋은_ κ²ƒμž…λ‹ˆλ‹€! (즉 _λͺ¨λ“ _ GET/POST/PUT/DELETE _request_λŠ” 인증/검증을 거쳐야 ν•˜λ―€λ‘œ λͺ‡ λ°€λ¦¬μ΄ˆ 이상 걸리지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€... κ·Έ 이상은 앱이 _ν™•μž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€_!)

κΈ°μ–΅ν•˜μ‹­μ‹œμ˜€ : _ 아무것도 κ°€μ •ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€_. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν…ŒμŠ€νŠΈν•˜λŠ” 것이 μ–΄λ–»κ²Œ μ˜λ―Έκ°€ μžˆλŠ”μ§€ 슀슀둜 κ²°μ •ν•˜μ‹­μ‹œμ˜€. ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” "μ˜¬λ°”λ₯Έ 방법"이 μžˆλ‹€λ©΄ λͺ¨λ“  λŒ€ν•™μ—μ„œ 그것을 κ°€λ₯΄μΉ  κ²ƒμž…λ‹ˆλ‹€. "κ°€μž₯ 쒋은 방법"은 "_pragmatic_" μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€. _your_ ν”„λ‘œμ νŠΈμ— μ˜λ―Έκ°€ μžˆλŠ” 일을 ν•˜μ„Έμš”.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€. 그렇지 μ•Šμ€ 경우 μ–΄λ””μ—μ„œ λ§‰ν˜”λŠ”μ§€ μ•Œλ €μ£Όμ‹­μ‹œμ˜€! :+1:

λ‘˜ λ‹€ κ°μ‚¬ν•©λ‹ˆλ‹€! 이것은 맀우 μœ μš©ν•©λ‹ˆλ‹€. κ·€ν•˜μ˜ μ œμ•ˆμ— λ”°λ₯΄λ©΄ 이 섀정이 톡합 ν…ŒμŠ€νŠΈμ— μ ν•©ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 뢀뢄이 ν•¨κ»˜ μž‘λ™ν•˜λŠ”μ§€ ν™•μ‹€νžˆ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

인증 λ°©λ²•μœΌλ‘œ oAuth만 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€(μ‚¬μš©μž 이름/λΉ„λ°€λ²ˆν˜Έ μ—†μŒ). ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λ§Œλ“œλŠ” 방법에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 전체 oAuth 흐름을 μ§„ν–‰ν•˜κ³  μ‹Άμ§€λŠ” μ•Šμ§€λ§Œ ν…ŒμŠ€νŠΈμ— μ‚¬μš©ν•  수 μžˆλŠ” 토큰을 ν•˜λ“œμ½”λ”©ν•˜λ„λ‘ μ œμ•ˆν•˜μ…¨μŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λ§Œλ“œλŠ” 데 도움이 될 λ§Œν•œ λ¦¬μ†ŒμŠ€λ₯Ό μΆ”μ²œν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

ν˜„μž¬ ν”„λ‘œμ νŠΈμ—μ„œ SailsJS v11.0을 μ‚¬μš©ν•˜λŠ” 데 도움이 λœλ‹€λ©΄. λ‚΄ μ„œλ²„λ₯Ό μ‹œμž‘ν•˜κ³  κ³ μ • μž₯치둜 λ©”λͺ¨λ¦¬ λ‚΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 생성/μ±„μš°λŠ” λΆ€νŠΈμŠ€νŠΈλž© ν…ŒμŠ€νŠΈ 파일 이 μžˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μƒμ„±ν•˜κΈ°μ— μ μ ˆν•œ μž₯μ†Œκ°€ μ•„λ‹κΉŒμš”?

λ‹€μ‹œ ν•œ 번 κ°μ‚¬ν•©λ‹ˆλ‹€. 지식을 기꺼이 κ³΅μœ ν•  수 μžˆλŠ” μ‚¬λžŒλ“€μ„ μ°ΎλŠ” 것은 정말 멋진 μΌμž…λ‹ˆλ‹€.

@rhewitt22 , 제 경우 ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈλŠ” μ˜¬λ°”λ₯Έ νŽ˜μ΄λ‘œλ“œμ™€ λΉ„λ°€ ν‚€λ‘œ μ„œλͺ…λœ λ§Œλ£Œλ˜μ§€ μ•ŠλŠ” JWT 토큰을 λ§Œλ“œλŠ” κ²ƒλ§ŒνΌ κ°„λ‹¨ν–ˆμŠ΅λ‹ˆλ‹€. 도움이 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

OAuthμ—μ„œλŠ” 인증 흐름에 따라 λ‹€λ₯΄λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. νŠΉμ • κΆŒν•œμ΄ 있고 λ§Œλ£Œλ˜μ§€ μ•ŠλŠ” μ΅œμ’… μ•‘μ„ΈμŠ€ 토큰을 생성할 μˆ˜λ„ μžˆμœΌλ―€λ‘œ 맀번 흐름을 κ±°μΉ  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 토큰이 ν”„λ‘œλ•μ…˜ μ‹œμŠ€ν…œμ—μ„œ λ§Žμ€ κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” 경우 ν…ŒμŠ€νŠΈμ—μ„œ λ§Œλ£Œλ˜μ§€ μ•ŠλŠ” 토큰을 ν•˜λ“œμ½”λ”©ν•˜λŠ” 것에 λŒ€ν•œ λ³΄μ•ˆ λ¬Έμ œμ— μ£Όμ˜ν•˜μ‹­μ‹œμ˜€. 그러면 잠재적인 κ³΅κ²©μžλŠ” μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ–»κΈ° μœ„ν•΄ 이 ν† ν°λ§Œ ν•„μš”ν•©λ‹ˆλ‹€. νŠΉμ • ν΄λΌμ΄μ–ΈνŠΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” 방법이 ν•„μš”ν•  수 있으며 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  λ•Œ ν…ŒμŠ€νŠΈ ν΄λΌμ΄μ–ΈνŠΈ λ˜λŠ” 토큰에 λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  것이 μ˜λ―Έκ°€ 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

@월링

μ‘°μ–Έ ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

ν…ŒμŠ€νŠΈμ—μ„œ oAuth 흐름을 κ±΄λ„ˆλ›°κ³  κ°€μ§œ μ‚¬μš©μžλ₯Ό λ§Œλ“€κ³  ν”„λ‘œλ•μ…˜μ—μ„œ μ‚¬μš©ν•˜λŠ” 것과 λ™μΌν•œ JWT(만료 포함)λ₯Ό λΆ€μ—¬ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν–ˆκ³  μ €λŠ” 맀우 ν–‰λ³΅ν•œ μΊ νΌμž…λ‹ˆλ‹€.

:슀마일: :슀마일: :슀마일:

λ‚΄ μ•±μ—μ„œ μž‘μ—…ν•˜κ³  개발 μ„œλ²„λ₯Ό λ³΄λ©΄μ„œ oAuth 뢀뢄이 μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ 확인할 κ²ƒμž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

rjmk picture rjmk  Β·  9μ½”λ©˜νŠΈ

alanshaw picture alanshaw  Β·  6μ½”λ©˜νŠΈ

KumarS-Naveen picture KumarS-Naveen  Β·  3μ½”λ©˜νŠΈ

nelsonic picture nelsonic  Β·  4μ½”λ©˜νŠΈ

sarneeh picture sarneeh  Β·  3μ½”λ©˜νŠΈ