jwt:로그아웃

2020-06-10 hit count image

jwt(Json Web Token) 인증 시스템의 로그아웃 기능을 구현하는 방법에 대해서 알아보겠습니다.

개요

jwt 인증 시스템에 로그아웃 기능을 추가하는 방법에 대해서 알아보겠습니다. 이 블로그는 시리즈로 구성되어 있습니다. jwt 구현을 위한 미들웨어(Middleware) 설치나 회원가입, 로그인, 사용자 정보 얻기, jwt 토큰 갱신 기능에 관해서는 이전 블로그를 참고해주세요.

저장소(Repository)

우리는 jwt 인증 시스템을 구현한 저장소(Repository)를 만들었습니다. 아래에 링크를 클릭해서 저장소(Repository)를 확인해 보세요.

개발 환경 구성

여기서 설명할 내용은 라라독(Laradock)과 앤서블(Ansible)을 이용하여 만든 라라벨(Laravel) 개발 환경에서 작업합니다. 라라독(Laradock)과 앤서블(Ansible)을 이용한 라라벨(Laravel) 개발 환경에 관해서는 아래에 블로그를 참고하세요.

컨트롤러 수정

라라벨(Laravel) 프로젝트 폴더의 /app/Http/Controllers/JWTAuthController.php 컨트롤러(Controller) 파일을 열고 아래의 내용을 추가합니다.

public function logout() {
    Auth::guard('api')->logout();

    return response()->json([
        'status' => 'success',
        'message' => 'logout'
    ], 200);
}

라우트 수정

로그아웃을 위한 URL을 추가하기 위해 /routes/api.php 파일을 열고 아래의 내용을 추가합니다.

...
Route::group(['middleware' => 'auth:api'], function(){
    ...
    Route::get('logout', 'JWTAuthController@logout')->name('api.jwt.logout');
    ...
});
...

테스트

지금까지 개발한 로그아웃 기능을 Postman을 통해 확인합니다.

# URL
localhost/api/logout
# header
Authorization
Bearer jwt_token

jwt 토큰이 유효하다면 아래와 같이 성공적으로 로그아웃할 수 있습니다.

logout

jwt 토큰의 유효기간이 끝났거나, 이전의 jwt 토큰을 사용하면 아래와 같이 401 에러의 응답(Response)을 확인할 수 있습니다.

fail to logout

완료

이것으로 라라벨(Laravel)에 jwt 인증 시스템을 추가하여 토큰 기반 인증 시스템을 구현하였습니다. 우리는 이 jwt 인증 시스템을 사용하여 RN(React Native) 앱을 개발할 예정입니다.

책 홍보

저도 블로그를 시작한지 1년만에...책을 다 써봅니다...인생에서 이런 날도 오는군요...타국에서 책 출판도 할 수 있고, 참 좋은 세상입니다.

이번에 쓴 책은 스무디 한 잔 마시며 끝내는 React Native입니다. 다양한 예제를 통해 리액트 네이티브를 공부할 수 있도록 구성해 보았습니다. 또한 설치부터 배포까지 실전에서도 사용할 수 있는 내용들을 담고 있습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native React Native로 실전 스마트폰 앱 만들기
Posts