jwt 설치 및 설정

2020-12-16 hit count image

라라벨(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를 사용하여 인증 시스템을 개발하는 방법에 대해서 소개하겠습니다.

참고

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

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

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts