728x90

대표이미지

 

728x90

 

🖥️ 회원인증 방법론

회원인증 방법은 크게 세가지가 있다.

 

⌨️ Session-based

어떤 사람이 로그인 페이지에서 로그인을 한다. 그럼 서버는 쿠키를 발행한다. 이 쿠키에는 세션아이디가 "유저가 로그인을 했다는 세션" 이다. 그럼 브라우저는 받은 쿠키를 저장한다. 

 

그럼 로그인을 한 상태가 된다.

 

그렇다면 이제 로그인한 사람만 마이페이지를 볼 수 있다고 가정한다면 브라우저에서 마이페이지를 누르면 서버에 자동으로 사용자 세션이 들어간 쿠키를 보낸다. 서버는 이 쿠키를 받아 세션로그인을 찾아 로그인을 했다고 판단이 되면 마이페이지를 보여주는 것이다.

세션

 

⌨️ token-based(JWT)

유저가 로그인을 한다. 그럼 서버는 JSON 웹 토큰이라는 것을 브라우저에게 발행해준다. 브라우저는 이 토큰을 저장한다. 브라우저가 마이페이지를 요청하면 웹 토큰이라는 것을 헤더라는 곳에 포함해 서버에 전송한다. 서버는 이 토큰을 받으면 유효성 검사를 해 유효기한이 지나지 않았다면 마이페이지를 보여주는 것이다.

 

token은 유저들이 로그인 상태를 저장할 필요가 없다. 이유는 로그인을 했다는 웹 토큰을 만들어 전달하기 때문이다.

 

하지만 token은 유효기한이 있다.

JWT

 

⌨️ Open Authentication (OAuth)

다른 사이트의 프로필 정보를 가져오는 방식이다. 카카오, 페이스북, 구글에 프로필의 접근권한도 가져오는 것이다. 동작방식은 로그인 버튼을 눌렀을 때 구글이나 페이스북 팝업이 뜨고 정보를 제공하는 것에 동의를 얻는다. 동의를 누른다면 사용자 이름, 성별 등 정보를 얻는다. 그럼 서버에 정송해 계쩡, 세션, JWT발급 등을 하면 된다.

 

이렇게 한다면 유저도 편하고 서버에서도 편하지만 단점이 있다. 그 단점은 소셜로그인이 없어진다면 난감한 상황이 일어난다.

OAuth

 

728x90

'👨‍💻 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