🖥️ 회원인증 방법론
회원인증 방법은 크게 세가지가 있다.
⌨️ Session-based
어떤 사람이 로그인 페이지에서 로그인을 한다. 그럼 서버는 쿠키를 발행한다. 이 쿠키에는 세션아이디가 "유저가 로그인을 했다는 세션" 이다. 그럼 브라우저는 받은 쿠키를 저장한다.
그럼 로그인을 한 상태가 된다.
그렇다면 이제 로그인한 사람만 마이페이지를 볼 수 있다고 가정한다면 브라우저에서 마이페이지를 누르면 서버에 자동으로 사용자 세션이 들어간 쿠키를 보낸다. 서버는 이 쿠키를 받아 세션로그인을 찾아 로그인을 했다고 판단이 되면 마이페이지를 보여주는 것이다.
⌨️ token-based(JWT)
유저가 로그인을 한다. 그럼 서버는 JSON 웹 토큰이라는 것을 브라우저에게 발행해준다. 브라우저는 이 토큰을 저장한다. 브라우저가 마이페이지를 요청하면 웹 토큰이라는 것을 헤더라는 곳에 포함해 서버에 전송한다. 서버는 이 토큰을 받으면 유효성 검사를 해 유효기한이 지나지 않았다면 마이페이지를 보여주는 것이다.
token은 유저들이 로그인 상태를 저장할 필요가 없다. 이유는 로그인을 했다는 웹 토큰을 만들어 전달하기 때문이다.
하지만 token은 유효기한이 있다.
⌨️ Open Authentication (OAuth)
다른 사이트의 프로필 정보를 가져오는 방식이다. 카카오, 페이스북, 구글에 프로필의 접근권한도 가져오는 것이다. 동작방식은 로그인 버튼을 눌렀을 때 구글이나 페이스북 팝업이 뜨고 정보를 제공하는 것에 동의를 얻는다. 동의를 누른다면 사용자 이름, 성별 등 정보를 얻는다. 그럼 서버에 정송해 계쩡, 세션, JWT발급 등을 하면 된다.
이렇게 한다면 유저도 편하고 서버에서도 편하지만 단점이 있다. 그 단점은 소셜로그인이 없어진다면 난감한 상황이 일어난다.
'👨💻 node.js' 카테고리의 다른 글
Node.js(express)와 MySQL 연결 (0) | 2024.02.22 |
---|---|
Not Found 구현 (1) | 2024.02.22 |
Query String (2) | 2024.02.20 |
URL의 이해 (4) | 2024.02.19 |
Node.js 설치 (0) | 2024.02.19 |