API가 지속적으로 개발됨에 따라 JWT(JSON 웹 토큰)를 사용하여 사용자 인증 및 권한 부여를 구현해야 하는 웹 애플리케이션이 점점 더 많아지고 있습니다. API 개발을 위한 기본 프레임워크로서 Laravel은 JWT도 지원합니다. 이번 글에서는 Laravel에서 JWT를 사용하는 방법을 소개하겠습니다.
JWT란 무엇인가요?
JSON 웹 토큰(JWT)은 당사자 간 JSON 개체로 클레임을 안전하게 전송하기 위한 개방형 표준(RFC 7519)입니다. JWT는 권한 부여, 인증 및 정보 교환에 사용될 수 있습니다. JWT는 일반적으로 HTTP 요청의 Authorization 헤더에 Bearer 토큰으로 전송됩니다.
JWT의 구조는 헤더, 페이로드, 서명의 세 부분으로 구성됩니다. 헤더와 페이로드는 모두 JSON 개체이며 서명은 이 두 부분을 결합한 암호화된 결과입니다. JWT의 구조는 매우 간단하므로 쉽게 구문 분석하고 검증할 수 있습니다.
Laravel에서 JWT를 어떻게 사용하나요?
JWT를 사용하려면 Laravel 프로젝트에 tymondesigns/jwt-auth 종속 라이브러리를 설치해야 합니다. Laravel 5.7 이상에서는 다음 명령을 사용하여 이 종속 라이브러리를 설치할 수 있습니다:
composer require tymon/jwt-auth
설치가 완료된 후 config/app.php 파일에 다음 서비스 공급자와 별칭을 추가해야 합니다:
'providers' => [ // Other Service Providers TymonJWTAuthProvidersLaravelServiceProvider::class, ], 'aliases' => [ // Other Aliases 'JWTAuth' => TymonJWTAuthFacadesJWTAuth::class, 'JWTFactory' => TymonJWTAuthFacadesJWTFactory::class, ],
Next , JWT 키를 생성해야 합니다. 키는 다음 명령을 사용하여 생성할 수 있습니다:
php artisan jwt:secret
이 명령은 임의의 키를 생성하여 config/jwt.php 파일에 추가합니다. 이 키를 보호하고 누구에게도 공개하지 않는 것이 중요합니다.
키를 생성한 후 Laravel에서 JWT 사용을 시작할 수 있습니다. JWT는 인증 및 승인에 사용될 수 있습니다.
JWT를 사용한 인증
Laravel에서 JWT를 사용하여 인증하는 과정은 다음과 같습니다.
JWT를 생성하여 사용자에게 반환하는 코드는 다음과 같습니다.
public function login(Request $request) { $credentials = $request->only('email', 'password'); if (!$token = JWTAuth::attempt($credentials)) { return response()->json(['error' => 'Unauthorized'], 401); } return response()->json(['token' => $token]); }
JWT를 검증하고 사용자 정보를 추출하는 코드는 다음과 같습니다.
public function profile(Request $request) { $user = JWTAuth::parseToken()->authenticate(); return response()->json(['user' => $user]); }
인증을 위해 JWT 사용
사용 과정 Laravel에서 인증을 위한 JWT는 다음과 같습니다.
JWT를 확인하고 사용자의 역할이나 권한을 확인하는 코드는 다음과 같습니다.
public function index(Request $request) { $user = JWTAuth::parseToken()->authenticate(); if ($user->hasRole('admin')) { $items = Item::all(); } else { $items = Item::where('user_id', '=', $user->id)->get(); } return response()->json(['items' => $items]); }
여기서 hasRole() 메서드는 사용자 정의 메서드이며 User 모델에서 구현되어야 한다는 점에 유의해야 합니다.
Summary
이 글에서는 Laravel에서 인증 및 권한 부여를 위해 JWT를 사용하는 과정을 소개합니다. JWT는 다양한 공격으로부터 애플리케이션을 보호하는 안전하고 간단하며 확장 가능한 사용자 인증 메커니즘을 제공합니다. API가 필요한 웹 애플리케이션을 개발하는 경우 JWT를 사용하는 것이 좋은 선택입니다.
위 내용은 Laravel에서 JWT를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!