👩💻️ 로그인 프로세스
원격 컴퓨터에서 운영 체제나 응용 프로그램에 엑세스 하는데 사용되는 절차다. 로그인 과정은 다음과 같다. 웹 브라우저에서 서버로 SSL을 이용한 ID, 비밀번호 등 회원 정보 전달 하고, 서버에서 전달된 정보를 DB에 저장하게 된다.
이때 DB의 정보가 해커에 의해 새어나가면 비밀번호가 노출될 위험이 있기에 비밀번호는 단방향 암호화를 하여 DB 정보가 유출되어도 비밀번호가 무엇인지 알아낼 수 없도록 해야한다고 한다.
로그인 프로세스는 방식에 따라 다양할 수 있는데, 몇가지 정도 알아보도록 하자
쿠키를 이용한 로그인
- 웹브라우저에서 서버에 SSL을 이용한 ID, 비밀번호 등의 회원 정보 전달한다.
- 서버에서 DB로 ID를 기준으로 사용자 정보 조회 및 비밀번호 확인한다.
- DB에서 22자리의 랜덤 스트링 생성 후 단방향 암호화하여 DB에 저장한다. 이때 쿠키 토큰 생성.
- 서버에서 쿠키에 다음 두 정보를 저장하는데 각각 사용자 ID와 생성한 22자리 랜덤 스트링을 저장한다. 이를 쿠키 비번이라 한다.
쿠키는 클라이언트 PC의 하드 디스크에 저장되는 것이기에 안전하지 않고 그러한 이유로 인해서 사용자ID를 암호화하고 22자리의 랜덤 스트링으로 이루어진 쿠키 비번을 함께 저장해야한다고 한다.
세션을 이용한 로그인
- 웹브라우저에서 서버로 SSL을 이용한 ID, 비밀번호 등 회원정보 전달을 한다.
- 서버에서 DB로 ID를 기준으로 사용자 정보 조회 및 비밀번호를 확인한다.
- 서버에서 웹브라우저로 세션에 사용자 ID를 저장한다.
로그인시 ID를 기준으로 사용자 정보를 DB에서 가져오게 된다. 이 후 전달된 비밀번호를 단방향 암호화 후 DB에 저장되어 있는 암호화된 비밀번호와 비교를 하고, 인증이 완료되면 서버는 클라이언트의 세션에 아이디를 저장하게 된다. 세션 정보는 웹브라우저가 닫히면 사라지게됨으로 비교적 안전하다고 볼 수도 있을 것 같다.
참조 : https://www.slideshare.net/HeeminKim2/how-loginworks
로그인은 어떻게 동작하나?
웹에서 로그인이 어떻게 이루어지는지에 대한 슬라이드. 세션, 쿠키를 이용한 회원가입, 로그인, 요청 시 인증, 로그아웃에 대한 설명.
www.slideshare.net
'📖 TIL > Node.js' 카테고리의 다른 글
[Node.js] JWT (0) | 2022.03.06 |
---|---|
[Node.js] Cookie (0) | 2022.03.04 |
[Node.js] ERD (0) | 2022.03.02 |
[Node.js] DB Schema (0) | 2022.02.28 |
[Node.js] DTO, DAO, VO 그리고 Entity (0) | 2022.02.27 |