inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Spring] 스프링 세션이 만료가 되면 localStorage에 저장한 값들도 같이 제거됩니다 도와주세요ㅜㅜ

589

덩더러러쿨

작성한 질문수 30

0

현재 로그인 유지 체크 여부에 따라 로그인 기능 유지 기능을 구현하고 있습니다.

클리이언트 단에서 localStorage를 이용해 이메일과 패스워드, 로그인 유지 체크 여부를 저장하여
서버(스프링 레거시 기반)에 로그인 세션 만료 후에도 자동으로 로그인이 유지하도록 했습니다.

그런데 로그인 세션이 만료되면 localStorage에 설정했던 값들도 같이 초기화 되어버리는 현상을 발생합니다ㅜㅜ

localStorage는 클라이언트에 데이터를 저장할 수 있도록 지원하는 web storage 기능으로 알고 있는데, 서버의 세션 만료가 클라이언트 단에 영향이 가는 걸까요?

<nav class="navbar navbar-expand-md bg-dark navbar-dark fixed-top shadow-lg">
	<a class="navbar-brand" href="${root }main">Easyvvon</a>
	<button class="navbar-toggler" type="button" data-toggle="collapse"
	        data-target="#navMenu">
		<span class="navbar-toggler-icon"></span>        
	</button>
	<div class="collapse navbar-collapse" id="navMenu">
		<c:if test="${loginUserBean.user_login != false }">
		<ul class="navbar-nav">
			<c:forEach var="vo" items="${headerMenuList }">
			<li class="nav-item">
				<a href="${root }board/main?$board_info_idx=${vo.id }" class="nav-link">${vo.category_name }</a>
			</li>
			</c:forEach>
		</ul>
		</c:if>
		
		<ul class="navbar-nav ml-auto">
			<c:choose>
				<c:when test="${loginUserBean.user_login != true }">
				<li class="nav-item">
					<a href="${root }user/login" class="nav-link">로그인</a>
				</li>
				<li class="nav-item">
					<a href="${root }user/join" class="nav-link">회원가입</a>
				</li>
				</c:when>
				<c:otherwise>
				<li class="nav-item">
					<a href="${root }user/modify" class="nav-link">정보수정</a>
				</li>
				<li class="nav-item">
					<a href="${root }user/logout" class="nav-link">로그아웃</a>
				</li>
				</c:otherwise>
			</c:choose>
		</ul>
		<input id="login_status" type="hidden" value="${loginUserBean.user_login }">
	</div>
</nav>
<script>
    window.onload = function() {
      // 페이지 무한 reload 방지,
      // 로그인 상태(loginCheck)가 null이면 'false', 로그인 중이면 'true'
      var login_status = $("#login_status").val();
    
      var keep_login_check = localStorage.getItem("keep_login");
      var keep_login_email = localStorage.getItem('keep_login_email');
      var keep_login_pw    = localStorage.getItem('keep_login_pw');
        
      if(login_status == "false" && keep_login_check == "true"
          && (keep_login_email != null & keep_login_pw != null)) {
        
          var params = {
              user_email  : keep_login_email,
              user_pw     : keep_login_pw
          };
        
          $.ajax({
              type: "POST",
              url : "${root }user/doLoginAjax",
              data: params,
              dataType: "text",
              success : function(result){
                  if (result.trim() == "true") {
                      location.reload();
                  } else {
                      //localStroage 전체 삭제
                      localStorage.clear();
                      location.reload();
                  }
            }
        });
        
        }
    }
</script>

 

<bean id="loginUserBean" class="com.easyvvon.steveleejava.model.vo.UserVO" scope="session" />
@Resource(name = "loginUserBean")
@Lazy
private UserVO loginUserBean;

@PostMapping(value = "/user/doLoginAjax")
public String doLogin(@RequestParam(required = false) Map<String, Object> params,
                      UserVO tmpLoginUserBean,
		      Model model) {
		
	tmpLoginUserBean.setUser_email(String.valueOf(params.get("user_email")));
	tmpLoginUserBean.setUser_pw(String.valueOf(params.get("user_pw")));
		
	userService.doLogin(tmpLoginUserBean);
	if(!loginUserBean.isUser_login()) {
		return false + "";
	}
	
	return true + "";
	
}
@Resource(name = "loginUserBean")
@Lazy
private UserVO loginUserBean;

@Override
public void doLogin(UserVO tmpLoginUserBean) {
	UserVO resultUserVO = userDAO.doLogin(tmpLoginUserBean);
	if(resultUserVO != null) {
		loginUserBean.setId(resultUserVO.getId());
		loginUserBean.setUser_email(resultUserVO.getUser_email());
		loginUserBean.setUser_login(true);
	}
}

제발 도와주세요 ㅜㅜ

 

답변 0

오타 제보

2

29

2

시큐리티 필터 설정 질문입니다!

2

39

1

76번 문제

1

32

2

형 책 어떻게 받아?

1

55

1