개요
라라벨(Laravel)에서 토큰 기반 인증 시스템을 구현하기 위해 jwt(Json Web Token)을 사용하려고 합니다. jwt 인증 시스템을 처음부터 다 구현하려면 어렵고 시간이 많이 걸립니다. 그래서 우리는 tymon/jwt-auth 미들웨어(Middleware)를 사용하여 jwt 인증 시스템을 개발하려고 합니다.
이 블로그에서는 tymon/jwt-auth
를 설치하고 설정하는 방법에 대해서 알아보겠습니다. tymon/jwt-auth
에 관한 자세한 내용은 아래에 링크를 참고하세요.
- tymon/jwt-auth: https://github.com/tymondesigns/jwt-auth
- tymon/jwt-auth document: https://jwt-auth.readthedocs.io/en/develop/
저장소(Repository)
우리는 jwt 인증 시스템을 구현한 저장소(Repository)를 만들었습니다. 아래에 링크를 클릭해서 저장소(Repository)를 확인해 보세요.
- laravel-jwt-exercise: https://github.com/dev-yakuza/laravel-jwt-exercise
개발 환경 구성
여기서 설명할 내용은 라라독(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를 사용하여 인증 시스템을 개발하는 방법에 대해서 소개하겠습니다.
참고
- tymon/jwt-auth: https://github.com/tymondesigns/jwt-auth
- tymon/jwt-auth document: https://jwt-auth.readthedocs.io/en/develop/
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.