노드&리액트 공부기록(8) - Auth 기능, 로그아웃 만들기
my code archive
article thumbnail
반응형

🤍Auth 기능의 필요성

  • 홈페이지에는 로그인이 필요한 기능이 있고 필요하지 않은 기능이 있다.
  • 페이지 이동 혹은 게시판 글을 쓰거나 지울 때 로그인이 되어 있는지, 관리자인지 or 유저인지 등을 체크하기 위해 필요하다.

 

  • 지난번 로그인 시 생성한 토큰을 서버에서는 DB에, 클라이언트는 Cookie에 토큰을 넣어두었다.
  • 먼저 클라이언트에서 쿠키에 담겨있는 토큰을 서버에 전달한다.
  • ㄴ 이 토큰은 인코드 되어있으므로 디코드시킨 다음 USER ID로 보낸다.
  • 해당 USER ID 토큰이 DB에 있을 경우 인증 완료.
  • 없을 경우 글쓰기 권한을 부여하지 않음.

 


1. Auth 라우트 만들기

 

2. 미들웨어 auth.js 만들기

  • 인증처리를 하는 곳
  • 클라이언트 쿠키에서 토큰을 가져온다.
  • 토큰을 복호화한 다음 유저를 찾는다.
  • 다른 곳에서도 사용하기 편하도록 token, user를 req에 담는다!!!
req.token = token;  //token,user를 req에 넣어줌.
req.user = user;

 

3. 토큰을 디코드한다.

  • 유저 아이디를 이용해서 유저를 찾은 다음 클라이언트에서 가져온 token과 DB에 보관된 토큰이 일치하는지 확인.
  • 토큰 디코드 코드는 이곳에서 참고한다.


🤍로그아웃 만들기

  • 로그아웃하려는 유저를 DB에서 찾아서
  • 그 유저의 토큰을 지워주면 된다.

그 이유는? 위에서 만든 auth 인증 시 토큰을 통해 확인하고 만약 토큰이 없을 경우 인증이 되지 않도록 구현했기 때문에 토큰만 지워주면 로그인 기능이 풀려버리게 된다.

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형