[과정]
1. 회원가입은 DB에 아이디랑 비번을 저장해놓는다.
2. 유저가 아이디 / 비번을 server에 보낸다.
3. 서버는 DB와 일치하는지 확인한다.
4. 맞다면 입장권(토근,session)을 유저한테 발급해준다.
5. 유저는 데이터를 요청할때마다 자동으로 입장권을 서버에 보낸다.
6. 입장권을 확인하고 server는 요청하는 데이터를 보내준다.
**입장권은 유저에서 관리하면 안되므로 쿠키저장소에 숨겨놓는다.
[입장권을 만들때]
1. session방식
: 입장권에 sessionID(랜덤한 문자열)이 포함되어 있다.
이 입장권을 가지고 유저는 데이터를 요청하고 받을 수 있다. 대신 요청할때마다 DB에서 데이터를 요청해야하므로 부담이 될 수 있다.
ex)redis라는 보관용 DB을 사용할 수 있다. 입출력이 빠르다.
2. token방식(JWT)
: 유저가 로그인을 성공하면 입장권을 발급해줌
입장권에 아이디, 로그인날짜, 유효기간등을 암호화해서 전달.(보완)
DB에 부담이 적지만 보안을 신경써야한다.
OAuth란?
:소셜 로그인,다른 사이트의 로그인 정보를 다른 사이트에 가져다가 쓰는 것.
만약 어떠한 사이트에 회원가입을 할때 구글로 소셜로그인을 하게되면 구글은 사용자에게 확인을 받고 유저정보를 해당 사이트에게 제공한다. => 구현해보니 비밀번호와 같은 민감한 정보는 넘어오지 않아서 안전한거 같았다.
위와같은 방법으로 로그인을 구현할 수 있지만,
next.js에서는 NextAuth를 사용해서 회원기능을 구현할 수 있다.(라이브러리 설치 필요)
'next.js' 카테고리의 다른 글
SEO 향상시키기 (0) | 2023.05.15 |
---|---|
SSG의 부족한 점을 보완한 ISR (0) | 2023.05.15 |
서버로 데이터 전송 (0) | 2023.05.04 |
next.js server (0) | 2023.05.01 |
[next.js] getStaticPaths (0) | 2023.04.07 |