Session, JWT, OAuth 회원인증 방법론

0

NodeJS

목록 보기
2/2
post-thumbnail

1. Session-based Authentication

사용자의 세션정보를 저장해서 로그인 기능 구현하는 방법.

서버의 메모리에 사용자가 로그인했었다는 정보를 저장후, 사용자가 마이페이지 등 로그인이 필요한
페이지에 접속하면, 사용자가 가지고 있는 쿠키에 기록된 세션아이디와
서버메모리 or DB에 이 사람이 로그인 했었다는 정보를 비교한 후 통과시켜줌.
매우 많이 쓰는 방법이지만 서버메모리나 DB에 저장해야한다는 단점이 있음.

2. JSON Web Token (JWT)

  • 세션데이터를 서버에 저장하지 않고 토큰을 사용자에게 발급해주는 방법

사용자가 로그인을 하면, 서버는 토큰을 발행해(긴 암호문) 사용자 브라우저에 보내줌.
쿠키나 로컬스토리지에 저장됨.
로그인이 필요한 페이지 방문시 토큰을 검사해서 유효시간이 지났는지, 접속해도 되는 토큰인지 등등을 검사하고
들여보내줌.
서버나 DB에 저장할 필요없으니 서버 스케일링시 문제가 없다는 장점이 있음.
하지만 서버가 토큰을 가지고 있지 않고 사용자에게 떠넘기는 방법이기 때문에,
보안상 좋지 않은 방법.

3. Open Autentication

구글이나 카카오 로그인 버튼을 누르게 되면
해당 기업이 회원정보를 사이트에 보내줌. 저장방식은 1번이나 2번으로 하면됨
회원가입이나 로그인이 간단하다는 장점이 있지만
구글이나 카카오가 OAuth로그인을 중단하거나, 방법을 수정하거나, API서버 다운이 되면
우리사이트 로그인이 불가능하게 됨.

0개의 댓글