[TIL] Authentication, SPA_MALL 프로젝트 기능 추가

김시원·2023년 4월 18일
0

TIL

목록 보기
6/50

TIL - 오늘 새로 배운 것

  • Cookie: 브라우저에서 자동으로 생성됌. 세션 id/token를 운반하기 위한 매개채
  • Session:
    로그인 시, Cookie를 통해 전달된 유저의 정보를 session DB에 저장함.
    세션 DB에는 unique한 Id가 있어서 세션 id는 쿠키 안에 저장되고 이를 담고 있는 쿠키는 다시 브라우저로 돌아오고 저장됌.
    해당 유저가 다른 요청을 할 때 세션 id를 갖고 있는 쿠키가 서버에 접근함.
    서버는 해당 쿠키가 어떤 session id를 가지고 있는지는 모르지만 id를 포함하고 있다는 것은 알기 때문에 세션 db를 확인해서 id와 비교하여 어떤 유저를 알게 된다.
    * 정리:
    1. 브라우저 --- 유저 정보를 가진 쿠키 ---> 서버
    2. 서버 --- 세선 DB에 저장 후 세션 ID ---> 브라우저
    3. 브라우저 --- 세션 ID를 가진 쿠키 ---> 서버
    4. 서버 --- 세션 DB에서 ID로 유저 찾기 ---> 유저 확인
  • JWT:
    Session DB가 필요없다, 서버가 많은 일을 하지 않아도 됌
    만약 로그인을 하는 유저의 정보가 일치한다면 서버는 DB에 뭔가를 생성하지 않고, 유저 id를 가져다가 sign을 해서 JWT token을 만들어 쿠키에 담아 전달한다.
    다시 해당 유저가 서버에 요청을 보낼때, 그 jwt token을 가진 쿠키를 보내고 서버는 그 토큰이 만료되었는지, 중간에 조작되었는지, 해당 서버에서 만들어졌는지 등 유효성 검사를 하고 어떤 유저인지 알게 된다.
    정리:
    1. 브라우저 --- 유저 정보를 가진 쿠키 ---> 서버
    2. 서버 --- sign 후 JWT token cookie ---> 브라우저
    3. 브라우저 --- JWT token cookie ---> 서버
    4. 서버 --- token validation check ---> 유저 확인

2. JWT Bearer?

일반적으로 토큰은 요청 헤더의 Authorization 필드에 담아져 보내집니다.
Authorization: <type> <credentials>

  • type
    Basic: base 64로 encoding
    Bearer: JWT or OAuth token
    Digest: RFC 7616
    HOBA: RFC 7486 - 전자 서명 기반 인증

3. MongoDB query: $or

https://www.mongodb.com/docs/manual/tutorial/query-documents/

4. 강의 들으며 노트 정리

Authentication
SPA_MALL project feature upgrade

0개의 댓글