const hahs = crypto.createHmac('μνΈν λ°©μ', 'μνΈν Key')
.update('Hashing ν κ°')
.digest('output type') // hex
μΈμ μ λμ μμ
1. ν΄λΌμ΄μΈνΈκ° μλ²μ μ²μμΌλ‘ Requestλ₯Ό 보λ (첫 μμ²μ΄κΈ° λλ¬Έμ session idκ° μ‘΄μ¬νμ§ μμ)
2. μλ²μμλ session id μΏ ν€ κ°μ΄ μλ κ²μ νμΈνκ³ μλ‘ λ°κΈν΄μ μλ΅
3. μ΄ν ν΄λΌμ΄μΈνΈλ μ λ¬λ°μ session id κ°μ 맀 μμ²λ§λ€ ν€λ μΏ ν€μ λ£μ΄μ μμ²
4. μλ²λ session idλ₯Ό νμΈνμ¬ μ¬μ©μλ₯Ό μλ³
5. ν΄λΌμ΄μΈνΈκ° λ‘κ·ΈμΈμ μμ²νλ©΄ μλ²λ sessionμ λ‘κ·ΈμΈν μ¬μ©μ μ λ³΄λ‘ κ°±μ νκ³ μλ‘μ΄ session idλ₯Ό λ°κΈνμ¬ μλ΅
6. μ΄ν ν΄λΌμ΄μΈνΈλ λ‘κ·ΈμΈ μ¬μ©μμ session id μΏ ν€λ₯Ό μμ²κ³Ό ν¨κ» μ λ¬νκ³ μλ²μμλ λ‘κ·ΈμΈλ μ¬μ©μλ‘ μλ³ κ°λ₯
7. ν΄λΌμ΄μΈνΈ μ’ λ£ (λΈλΌμ°μ μ’ λ£) μ session id μ κ±°, μλ²μμλ μΈμ μ κ±°
μΈμ μ νΉμ§
- μΈμ μμ΄λλ λΈλΌμ°μ λ¨μλ‘ μ μ₯λκ³ λΈλΌμ°μ μ’ λ£μ μλ©Έλ©λλ€.
- λ‘κ·ΈμΈν μ¬μ©μμ λν΄μλ§ μΈμ μ μμ±νλ κ²μ΄ μλλλ€.
λ°λΌμ λ‘κ·Έμμνλ©΄ μλ‘μ΄ μ¬μ©μλ‘ μΈμν΄μ μλ‘μ΄ μΈμ μ΄ μμ±λ©λλ€.- μ¬μ©μκ° λ‘κ·ΈμΈ νλμ§, λλ€μ λ±μ μ¬μ©μκ° μμ² ν λ λ§λ€
νμν μ 보λ€μ μΈμ μ λ΄μλλ©΄ μ¬μ©μ λλΉμ μ κ·Όν νμκ° μμ΄μ ν¨μ¨μ μ λλ€.
μ¬μ΄νΈλ₯Ό μ΄λ Sessionμ΄ νμ±ν λμ΄ Client IDλ₯Ό
μ£Όλ©΄μ μ€ννκ²ν΄μ€λ€.
ν΄λΌμ΄μΈνΈκ° μ²μμ μλ²μ λ€μ΄μ€λ©΄ μλ²λ μΏ ν€λ₯Ό μμ±ν΄μ
responseλ‘ μ£Όλ©΄μ μΏ ν€λ κ°μ΄ μ£Όκ³ λ€μλ²μ ν΄λΌμ΄μΈνΈκ°
μμ²ν λ λ°μλ μΏ ν€λ₯Ό requestλ‘ λ³΄λ΄λ©΄μ νμμ λ§μΆ°μ λ¬Όμ΄λ³Έλ€κ³
μκ°νλ©΄ λ κ² κ°μ΅λλ€.
μΈμ μ μλ²μμ κ°μ§κ³ μλ μ 보μ΄κ³ , μΏ ν€λ μ¬μ©μμκ² λ°κΈλ μΈμ μ
μ΄κΈ°μν μ΄μ λΌκ³ μκ°νμλ©΄ λ κ² κ°μ΅λλ€.
π Token (Sessionμ μΈμ¦νκΈ° μν μ 보)
- μΈμ¦μ μν΄ μ¬μ©λλ μνΈν λ λ¬Έμμ΄
- Http ν΅μ μ Stateless νΉμ§κ³Ό μλ§λ€. (μ°κ²°λ μνμ λ°λΌ κ΅λ₯κ°λ₯μ΄λΌ)
- μ μ μ μΈμ¦ μ 보λ₯Ό μλ²λ μΈμ μ λ΄μλμ§ μμ
- μ μ μ νμ±ν μ¬λΆλ₯Ό μ κ²½μ°μ§ μκ³ λκ²¨μ§ μμ²μ λ΄κ²¨μ§ Tokenμ μ ν©μ±νμΈ
μ¦, Clientκ° μμ²νλ©΄ tokenμ μλ²μμ λ§λ€μ΄μ μ μ₯νκ³ , ν΄λΌμ΄μΈνΈμκ²λ 보λ΄μ€λλ€. μ΄λ κ²λλ©΄ cookie, token λκ°λ€ μ£Όκ³ λ°κ³ νκ²λλ€κ³ μκ°ν©λλ€. (Client μ Server λ μΈ‘μ λ€ cookie,tokenμ μ μ₯νκ³ μμ΅λλ€.)