[C-3-4] 로그아웃
2020. 1. 21. 23:50ㆍProject C (SBMS)/Project C 파트3
반응형
로그아웃 버튼을 클릭하면, 로그아웃 창으로 이동하며, 한번더 로그아웃을 누르면, 로그아웃을 처리한다.
views
customLogin.jsp
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ include file="includes/header.jsp"%>
<div style="margin : 200px 600px 100px 600px;">
<form role="form" method='post' action="/sbms/login">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="userid" name="username" type="text" autofocus>
</div>
<div class="form-group">
<input class="form-control" placeholder="Password" name="password" type="password" value="">
</div>
<div class="checkbox">
<label>
<input name="remember-me" type="checkbox">Remember Me
</label>
</div>
<!-- Change this to a button or input when using this as a form -->
<a href="index.html" class="btn btn-lg btn-success btn-block">Login</a>
<a href="/sbms/customSignup" class="btn btn-lg btn-primary btn-block">Sign Up</a>
</fieldset>
<input type="hidden" name="${_csrf.parameterName}"
value="${_csrf.token}" />
</form>
</div>
<!-- jQuery -->
<script src="/sbms/resources/vendor/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="/sbms/resources/vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Metis Menu Plugin JavaScript -->
<script src="/sbms/resources/vendor/metisMenu/metisMenu.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="/sbms/resources/dist/js/sb-admin-2.js"></script>
<script>
$(".btn-success").on("click", function(e){
e.preventDefault();
$("form").submit();
});
</script>
<c:if test="${param.logout != null}">
<script>
$(document).ready(function(){
alert("로그아웃하였습니다.");
});
</script>
</c:if>
</body>
</html>
views
customLogout.jsp
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ include file="includes/header.jsp"%>
<div style="margin : 200px 600px 100px 600px;">
<div class="panel-heading">
<h3 class="panel-title">Logout Page</h3>
</div>
<div class="panel-body">
<form role="form" method='post' action="/sbms/customLogout">
<fieldset>
<!-- Change this to a button or input when using this as a form -->
<a href="index.html" class="btn btn-lg btn-success btn-block">Logout</a>
</fieldset>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>
</div>
</div>
<!-- jQuery -->
<script src="/resources/vendor/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="/resources/vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Metis Menu Plugin JavaScript -->
<script src="/resources/vendor/metisMenu/metisMenu.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="/resources/dist/js/sb-admin-2.js"></script>
<script>
$(".btn-success").on("click", function(e){
e.preventDefault();
$("form").submit();
});
</script>
<c:if test="${param.logout != null }">
<script>
$().ready(function(){
alert("로그아웃했습니다.");
});
</script>
</c:if>
</body>
</html>
로그아웃 버튼 클릭 시 로그아웃 페이지
스프링 시큐리티 공식 로그인 정보 유지 테이블을 생성한다.
create table PERSISTENT_LOGINS (
USERNAME varchar(64) not null,
SERIES varchar(64) primary key,
TOKEN varchar(64) not null,
LAST_USED timestamp not null
);
로그아웃 시
delete from persistent_logins
where username = '유저아이디'
를 스프링 자체에서 실행하므로, 준비해놓아야 한다.
참고로, 로그인 부분에서 말하는 것을 놓쳤는데,
로그인 창에서 로그인 시 remember-me 를 체크한 후 로그인하면,
persistent_logins 테이블에서 로그인 정보를 유지한다.
서버에서 관리하면, 데이터베이스상에서 정보가 공유가능하기때문에, 더욱 안정적으로 운영이 가능하다.
반응형
'Project C (SBMS) > Project C 파트3' 카테고리의 다른 글
[C-3-5] 게시물 작성 시 스프링 시큐리티 처리 (0) | 2020.01.22 |
---|---|
[C-3-3] 회원가입 (0) | 2020.01.21 |
[C-3-2] 스프링 웹 시큐리티를 이용한 로그인 처리 2 (0) | 2020.01.21 |
[C-3-1] 스프링 웹 시큐리티를 이용한 로그인 처리 (0) | 2020.01.21 |