로그아웃 기능

가연·2023년 2월 22일
0

date.now 리팩토링

목록 보기
5/7

로컬에 아이디가 저장돼있으면(로그인 하면) 로그아웃 글씨가 보이고, 아이디가 없으면 로그인/회원가입 글씨가 보이게 하기 -> 홈페이지, 게시글페이지, 게시판페이지에 모두 필요하므로(마이페이지는 로그인 안하고 들어가면 모달창 띄우고 로그인 페이지로 이동.) 모듈에 함수를 넣어 사용하기.

export function LoginStatus(logInLink, signInLink, logOutBtn) {
  if (localStorage.getItem("userId")) {
    logInLink.style.display = "none";
    signInLink.style.display = "none";
    logOutBtn.style.display = "flex";
  } else {
    logInLink.style.display = "flex";
    signInLink.style.display = "flex";
    logOutBtn.style.display = "none";
  }
}
export function logout() {
  if (confirm("로그아웃 하겠습니까?")) {
    localStorage.removeItem("userId");
  }
}

로그인상태 함수와 로그아웃 함수로, 이 함수를 사용할때 window.addEventLister('load',함수) 처럼, 페이지가 로드될때마다 로그인 상태를 확인하게 한다.

로그아웃은 간단하게 모달창을 띄운 후 확인 누르면 로컬에 아이디를 삭제하는 식으로만 구현했지만 , 추후에 보안적인 측면을 고려하여 구현하도록 하자.

  • 캐시 제거: 사용자 인증 정보가 저장된 캐시를 삭제하거나 무효화해야 함.
  • 쿠키 처리: 쿠키를 사용하여 사용자 인증 정보를 유지하는 경우, 쿠키를 삭제하거나 무효화해야 함.
  • HTTP/HTTPS 프로토콜: HTTP/HTTPS 프로토콜을 사용하여 로그아웃을 처리해야 함.
  • 타이밍 공격 방지: 타이밍 공격을 방지하기 위해 로그아웃 프로세스가 일정 시간 이내에 처리되도록 해야 함.
  • CSRF 방어: CSRF 공격을 방어하기 위해 로그아웃 요청에 대한 토큰을 사용하는 등의 보안 기능을 추가할 수 있음.

0개의 댓글