728x90
**본 포스팅은 유튜브&인프런 John Ahn님의 노드 리액트 기초 강의를 참고하여 작성하였습니다.**
Authentication
우리가 어떤 사이트에 들어가면 그 사이트에 여러 가지 페이지들이 있는데,
어떤 페이지는 로그인된 유저만 이용할 수 있고 다른 페이지는 로그인하지 않아도 누구나 이용할 수 있기도 한다.
글을 작성할 때도 로그인된 유저만 작성가능 할 때도 있고 관리자만 이용할 수 있는 기능도 있다.
이러한 것들을 하나하나 체크하기 위해서 auth기능이 필요하다.
client입장에서는 토큰을 쿠키에 넣어주고, server입장에서는 user DB에 넣어준다.
이 두가지 토큰이 일치하는지 계속해서 체크해주면 된다.
클라이언트에 담겨있는 쿠키를 서버에 전달하면
서버에서 그 토큰을 secret string을 이용해 decode해서 유저 아이디를 찾을 수 있고,
이를 통해 가져온 토큰과 DB에 보관된 토큰이 일치하는지 확인 할 수 있다.
토큰이 다르거나 없으면 유저인증에 실패하여
글쓰기 등 원하는 것들을 할 수 없게 만드는 것이다.
로그아웃
바로 위의 과정을 보면,
클라이언트 쿠키에 있는 토큰을 가져와서 DB의 토큰과 같은지 확인함으로써 인증을 했었다.
토큰이 DB에 없으면 클라이언트에서 가져온 토큰이 맞지 않기 때문에 인증이 안된다.
따라서 로그아웃 할 때는 그냥 DB에서 유저의 토큰을 지워주기만 하면 인증이 안돼서 로그인 기능이 풀리게 된다.
728x90
'Study > Node&React_basic' 카테고리의 다른 글
[노드/리액트 기초] #18~20. CRA 구조, Boilerplate, React Router Dom (0) | 2022.02.05 |
---|---|
[노드/리액트 기초] #15~17. React JS, Create-React-App, NPM vs NPX (0) | 2022.02.05 |
[노드/리액트 기초] #11~12. 로그인 기능 with Bcrypt, 토큰 생성 with jsonwebtoken (0) | 2022.02.05 |
[노드/리액트 기초] #9~10. 비밀 정보 보호, 암호화 with Bcrypt (0) | 2022.02.05 |
[노드/리액트 기초] #7~8. BodyParser & PostMan & 회원 가입 기능, Node Mon (0) | 2022.01.30 |
댓글