jwt 설치 및 설정

2019-05-23

라라벨(Laravel)에서 토큰 기반 인증 시스템을 구현하기 위해 jwt(Json Web Token) 미들웨어(Middleware)를 설치하고 설정하는 방법에 대해서 알아봅니다.

개요

라라벨(Laravel)에서 토큰 기반 인증 시스템을 구현하기 위해 jwt(Json Web Token)을 사용하려고 합니다. jwt 인증 시스템을 처음부터 다 구현하려면 어렵고 시간이 많이 걸립니다. 그래서 우리는 tymon/jwt-auth 미들웨어(Middleware)를 사용하여 jwt 인증 시스템을 개발하려고 합니다.

이 블로그에서는 tymon/jwt-auth를 설치하고 설정하는 방법에 대해서 알아보겠습니다. tymon/jwt-auth에 관한 자세한 내용은 아래에 링크를 참고하세요.

저장소(Repository)

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

개발 환경 구성

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

미들웨어(Middleware) 설치

jwt 인증 시스템을 개발하기 위해 아래에 composer 명령어로 tymon/jwt-auth 미들웨어(Middleware)를 설치합니다.

# vagrant ssh
# sudo docker exec -it laradock_workspace_1 bash
composer require tymon/jwt-auth

프로바이더 설정

라라벨(Laravel) 프로젝트 폴더에 config/app.php 파일을 열고 아래와 같이 프로바이더(Provider)를 설정합니다.

...
'providers' => [
    ...
    Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
    ...
]
...

설정이 완료되었다면 아래의 artisan 명령어로 미들웨어(Middleware)를 적용합니다.

# vagrant ssh
# sudo docker exec -it laradock_workspace_1 bash
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

아래와 같이 에러가 발생한다면

In ProviderRepository.php line 208:
Class 'Tymon\JWTAuth\Providers\LaravelServiceProvider' not found

설치한 tymon/jwt-auth 미들웨어(Middleware)의 버전을 업데이트할 필요가 있습니다. composer.json 파일을 아래와 같이 수정합니다.

...
"require": {
    ...
    "tymon/jwt-auth": "^1.0.0-rc.3"
    ...
},
...

버전을 수정하였다면 아래에 composer 명령어로 버전을 업데이트 합니다.

composer update

그리고 다시 artisan 명령어로 미들웨어(Middleware)를 적용합니다.

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

비밀키 생성

설치한 tymon/jwt-auth 미들웨어(Middleware)가 사용할 비밀키(secret key)를 생성합니다.

php artisan jwt:secret

환경 설정 파일인 .env를 열어 하단에 아래와 같은 내용이 추가되었는지 확인합니다.

JWT_SECRET=*******

완료

jwt(Json Web Token) 기반 인증 시스템을 개발하기 위해 tymon/jwt-auth 미들웨어(Middleware) 설치 및 설정에 대해서 알아보았습니다. 다음 블로그에서는 실제 jwt를 사용하여 인증 시스템을 개발하는 방법에 대해서 소개하겠습니다.

참고

Buy me a coffeeBuy me a coffee
Posts