로그인 세션 - 인증과 인가 + 쿠키 까지

데브코스

목록 보기
51/131
post-thumbnail

로그인(인증) 세션이 만료되었습니다.

오늘은 로그인과 인증, 인가에 대해서 알아볼려고 한다.


인증(=로그인) : Authentication

  • 언제 로그인이 필요해? 쇼핑몰 상품 볼 때 필요해? => X
  • 쇼핑몰 장바구니 담을 때 => O
  • 쇼핑몰 상품 구매, 마이 페이지 들어갈 때 => O

즉 로그인을 하는 이유나, 로그인이 필요한 이유가 뭐냐면

  • 나 여기 가입된 유저야!
    를 확인하기 위함

인가 : Authorization

  • 너 가입된 건 알겠는데, 이 페이지에 들어올 수 있는 자격 있어?

관리자 / 고객

고객 유저는 관리자 페이지에 들어갈 수 없음!
같은 사이트 내에 관리자 / 고객에 따라 접근할 수 있는 페이지가 다르다!

즉,

  • 관리자든 고객이든 인증을 통해서 사이트에 가입된 사용자라는 걸 증명하는 것 => 인증
  • 인증 후에, 이 친구 혹시 이 페이지 접근 권한 있는지 확인하는 것 => 인가

  • 웹에서 서버와 클라이언트가 주고받는 데이터 중 하나
  • 정확히는 생성은 웹서버가 해서 웹 브라우저 주면, 브라우저가 자기 메모리에 저장해두고, 다음에 같은 웹서버 방문할 때 쿠기를 들고 요청하러 감.

다시, 쉽게 말해볼게.

로그인을 하면 서버가 너의 쿠키를 구워줘.
그럼 쿠키를 너가 가지고 있다가, 너가 다른 사이트에서 놀다가 다시 돌아와서 그 쿠기를 내면, 서버 입장에서는 아 너 아까 왔던 애지?
다시 너가 작업한 대로 사이트를 보여줄게. 라는 뜻이야.

장점 : 서버가 저장x => 서버 저장 공간, HTTP
Stateless => RESTful

단점 : 보안에 조금 취약함. 너가 쿠기를 뺏길 수도 있고, 쿠기를 서버에 전달할 때, 누군가에게 뺏길 수도 있음.

그래서
쿠키에 중요한 정보를 담지 말고, 중요한 정보는 서버에 저장해두고, 그 정보가 어딨는지 주소만 적어서 Cookie에 담자!

  • 쿠기에 넣어서 보내기엔 너무 중요한 내용은 서버가 가진 금고에 넣어 두고, 그 금고 번호만 쿠키에 넣어서 통신함.

세션 Session

로그인을 하면 서버가 금고를 만들어서, 그 금고에 정보를 저장해둬.(중요한 정보를 저장해두는 거지)
그리고 금고의 번호를 너에게 줘.

  • 그럼 사용자와 서버가 이 번호만 가지고 대화함. (군대에서 사용하는 암구호 같은 거야.)

장점 : 보안이 좀 더 좋아짐. 비교적으로

단점 : 서버가 저장을 함.. 서버 저장 공간을 쓴다는 거고 => Stateless 하다고 표현할 수 없음..

profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글