Cookie, Session, Token, Short.ly Express , Autentication(1/2)

five1star·2020년 10월 30일

TIL

목록 보기
19/25
post-thumbnail

10월 29-30일 인증과 관련된 세션을 진행하고있다. 먼저 순한맛(...)으로 mini-auth-server스프린트를 진행했다.

스프린트는 http.createServer로 작성된 서버에서 res에 쿠키를 어떻게 설정해서 보내는지, 보낸 쿠키가 세션과 일치하는 작업을 어떻게하면 확인할 수 있는지 확인하는 방향으로 진행되었다.

Authentication

서버는 클라이언트에게 HTTP 요청 헤더에 인증 정보를 포함하여 보낸다. HTML 서버 요청을 통해서 쿠키를 보내고자 하면 다음과 같은 방법으로 보낼 수 있다.

#1. res.writeHead(200,{"Set-Cookie:{"=값"}) 다중 헤더값을 설정할 때 
#2. res.setHeader('Set-Cookie', '키=값') 단일 헤더를 설정할 때

Set-Cookie 옵션들

그렇다면, 쿠키는 무엇인가?

  • 쿠키는 클라이언트 가 관리하는 정보로, 사용자의 특정 정보를 브라우저 메모리에 관리하는 역할을 한다.
  • 서버는 사용자에 따라 개별 쿠키를 발급하는데 이 쿠키에는 사용자를 식별할 수 있는 개인정보가 담겨있다.
  • 따라서 사용자는 이 쿠키를 통해서 서버와 소통할시 본인에 대한 정보를 인증할 수 있다.
  • 쿠키는 인증을 위해 사용자의 정보를 담고 있기 때문에, 반드시 주기적으로 삭제할 필요가 있다.

Session

쿠키가 클라이언트가 저장하는 사용자의 정보라면, 세션은 서버가 관리하는 사용자의 정보다.

  • 세션은 요청이 들어왔을때, 쿠키가 세션이 가지고 있는 사용자의 세션id를 가지고 있는지를 확인한다.
  • 서버는 클라이언트의 요청 쿠키에 담긴 세션 id를 세션 스토리지와 비교해 인증을 판단한다.

Token

토큰은 인증을 위해 사용되는 암호화된 문자열이다.

  • 토큰또한 세션과 마찬가지로 사용자가 보내는 요청이다.
  • 다만, 유저의 인증 정보를 서버나 세션에 담아두지 않는다.
  • 유저의 활성화 여부를 신경쓰지 않고 넘겨진 요청에 담겨진 Token의 정합성만을 확인한다
  • (서버 운영의 효율 측면으로 더 좋다)

**아래는 내가 이해한대로 끄적인 간단한 그림**

profile
자라나라 코드코드

0개의 댓글