- Session-based Authentication
- JSON Web Token (JWT)
- Open Autentication
사용자의 세션정보를 저장해서 로그인 기능을 구현하는 방법
로그인시 제출한 아이디, 비빌번호가 DB 저장된 회원 정보와 일치한다면 세션스토어에 *세션 하나를 만들어서 저장
세션이란 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미하며 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라 함
로그인한 유저마다 각각 유니크한 세션아이디를 발급
발급한 세션아이디는 *쿠키에 담아서 고객 브라우저에 전송 (고객과 서버 둘다 보관)
쿠키란 브라우저에 마련되어있는 문자데이터 저장공간임
ex)
고객이 로그인 함
아이디 / 비빌번호 서버로 전송 -> 서버에서 기존에 있던 DB에 아이디/비번이 있다면 세션 아이디를 만들어주고 세션 아이디들을 담을 변수나 DB공간을 마련해서 저장해둠 -> 세션 아이디를 쿠키에 넣어서 고객의 브라우저에 쿠키를 강제로 저장 시킴
고객이 마이페이지를 요청
/mypage 를 달라고 요청하면 서버는 response.render() 해주기 전 가로막고 로그인 했는지 물어본다.
쿠키에 세션아이디가 포함되어있는지 검사
고객이 페이지를 요청할 때 마다 자동으로 쿠키가 서버로 전송되고 서버는 쿠키에 기뢱된 세션아이디를 서버 메모리 또는 DB에 저장되어있던 세션 아이디와 비교해서 있으면 통과
서버는 마이페이지를 보내줌
이 회원의 이름, 나이, 성별 등의 DB정보가 필요하다면 세션 데이터를 참고해서 이 사람의 이름, 나이 등의 정보를 DB에서 꺼내옴
토큰 방식은 세션데이터를 서버에 저장하지 않고 열람할 수 있는 열쇠(토큰)를 사용자에게 발급해주는것이며 *토큰에는 세션 방식보다 약간 더 많은 정보들이 들어간다.
토큰이란 암호화된 문자열이며 사용자의 로그인 여부, 아이디가 무엇인지 등의 정보를 넣을 수 있는것이며 위조가 불가능하도록 특별한 서명이 추가되며 쿠키나 로컬스토리지에 저장되며 여기서의 로컬스토리지란 브라우저 내에서 데이터를 저장할 수 있는 웹 스토리지 기술임
로그인시 제출한 아이디, 비밀번호가 DB에 저장된 회원이다.
서버는 토큰 하나를 만들어서 고객 브라우저로 보내준다
고객이 마이페이지를 요청하면
/mypage를 요청하면 서버는 response.render() 해주기 전 가로막고 물어보는 과정을 토큰 검사라함.
서버는 토큰을 검사함
고객이 마이페이지 요청시 함께 보낸 토큰이 적법한지 검사하고 기간이 지나지 않았는지, 서명이 잘 되어있는지, 블랙리스트에 등록된 토큰인지 검사를 거친 후 이상이 없으면 마이페이지로 이동시켜줌
서버 스케일링 이란 인스턴스 혹은 컴퓨팅 파워를 늘리는 것을 말함
소셜 미디어 계정정보로 를 불러와서 가입을 승인시켜주는 방법이다. 소셜 로그인 버튼을 누르면 팝업이 뜨면서 계정정보 제공 승인을 요청하고, 승인하면 서버에서 개인정보를 가져와서 계정을 만들거나 세션을 만들어주거나 JWT를 발급해준다.
어떤 사람이 소셜 미디어 로그인을 사용함.
팝업이 뜨면서 계정정보 제공 승인을 요청하면 승인을 함
그럼 소셜미디어는 우리 서버에 유저의 이름, 아이디 정보를 보내줌
요청한 소셜미디어의 정보를 바탕으로 세션이나 토큰을 만듬
고객이 마이페이지를 요청하면
/mypage를 요청하면 서버는 response.render()해주기 전 가로막고 로그인 했는지 확인
서버는 토큰이나 세션을 검사
토큰이나 세션을 적법한지 검사 후 통과되면 마이페이지를 response.render() 함