JWT
를 이용한 로그인까지 구현이 되었다면 로그아웃은 쉽게 구현할 수 있다.
쿠키를 삭제해 주면 브라우저에 토큰이 사라지므로 더이상 서버에서 유저를 확인할 방법이 없어진다.
로그인이 된 경우는ejs
파일에서만 다루므로ejs
파일에 아래처럼 로그아웃 버튼을 만든다.
<form id="signOut">
<button type="button" onclick="signOut()">Log out</button><br><br>
</form>
onclick
으로signOut()
함수를 실행하게 만들어준다. 함수의 내용은 아래와 같다.
별거 없이 그냥 해당 미들웨어를 호출한다.
<script>
function signOut() {
$.ajax({
type: "get",
url: 'http://localhost:8080/logOut',
data: {},
dataType:'text',
success: function(res) {
location.reload();
}
});
}
</script>
미들웨어가 호출되면 아래와 같은 방법으로 쿠키를 지운다.
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/logOut', function(req, res) {
return res.clearCookie('user').end();
});
응답으로 쿠키를 지우고 아까
signOut
함수의success
부분에서 함수가 호출되면 페이지를 새로고침하면 로그아웃이 간단하게 구현된다.