210414_TIL

seungyeonΒ·2021λ…„ 4μ›” 14일
0

TIL

λͺ©λ‘ 보기
53/64

IM: DAY 52

Authentication: DAY ONE πŸ”

였늘

  • Toy Problem
  • https
    • mkcert
    • ngrok
  • session
    • express-session
  • cookie

κΈ°μ–΅ν•΄λ‘˜ 것

session μ‚­μ œ

req.session.destroy();

session 인증이 λ“€μ–΄κ°„ axois 톡신 μ‚¬μš© μ‹œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ μ„€μ •ν•˜κΈ°

session 인증이 λ“€μ–΄κ°„ axios 톡신 μ‹œ 인증 cookie 값을 μ „λ‹¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°˜λ“œμ‹œ μ•„λž˜ 섀정을 μΆ”κ°€ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.

const axios = require('axios');
axios.defaults.withCredentials = true;

이 λ•Œ, μ„œλ²„μ˜ cors μ„€μ •μ—μ„œ Access-Control-Allow-Origin이 * 일 경우 request의 credentials modeκ°€ μ§€μ›λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
➑ 각 μ„œλ²„μ˜ 호슀트 정보λ₯Ό cors 섀정에 μΆ”κ°€ν•΄μ£Όλ©΄ λœλ‹€.

// server/index.js
const express = require("express");
const app = express();
const cors = require("cors");

app.use(
  cors({
    origin: 'https://localhost:3000', //ν΄λΌμ΄μ–ΈνŠΈκ°€ μ–΄λ–€ origin인지에 따라 μ„€μ •
    methods: 'GET,POST,OPTIONS',
    preflightContinue: false,
    optionsSuccessStatus: 204,
    credentials: true,
  }),
);

πŸ”— Reference https://lahuman.github.io/cors_axios_session/

Set-CookieλŠ” μ„œλ²„μ—μ„œ μ‚¬μš©μž λΈŒλΌμš°μ €μ— μΏ ν‚€λ₯Ό μ „μ†‘ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” HTTP 응닡 헀더닀.

Set-Cookie 에 λ“€μ–΄κ°€λŠ” μš”μ†Œλ“€ 쀑 Expires와 Max-Ageκ°€ μΏ ν‚€μ˜ 수λͺ…(?)을 κ²°μ •ν•œλ‹€.

  • Max-ageλŠ” Expires와 λΉ„μŠ·ν•˜μ§€λ§Œ λ‚ μ§œ λŒ€μ‹  초(sec)λ₯Ό μž…λ ₯ν•  수 μžˆλ‹€. ν•΄λ‹Ή μ΄ˆκ°€ μ§€λ‚˜λ©΄ μΏ κΈ°κ°€ λ§Œλ£Œλœλ‹€.
  • Expires에 λͺ…μ‹œλœ λ‚ μ§œμ— μΏ ν‚€κ°€ 만료(μ‚­μ œ)λœλ‹€.
    μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ default κ°’μœΌλ‘œ session이라고 ν‘œν˜„λ˜λŠ”λ° λΈŒλΌμš°μ €λ₯Ό λ„λŠ” μ‹œμ μ— λ§Œλ£Œλœλ‹€λŠ” λœ»μ΄λ‹€.
  • Max-age와 Expiresκ°€ λ‘˜ λ‹€ λͺ…μ‹œλ˜μ§€ μ•ŠμœΌλ©΄ μΏ ν‚€λŠ” μ˜μ†μ„±μ„ 가진닀. 즉, μΏ ν‚€λŠ” μžλ™μœΌλ‘œ λ§Œλ£Œλ˜μ§€ μ•ŠλŠ”λ‹€.
  • Max-age와 Expiresκ°€ λ‘˜ λ‹€ μ„€μ •λ˜μ–΄μžˆλŠ” 경우, Max-ageκ°€ Expires보닀 μš°μ„ μ‹œ λœλ‹€.

더 곡뢀할 것듀

내일

  • Toy Problem
  • Token

0개의 λŒ“κΈ€