Laravel이 JWT를 사용하여 API 사용자 인증을 구현하는 세부 단계
이 글의 내용은 JWT를 사용하여 Laravel에서 API 사용자 인증을 구현하는 세부 단계에 대한 내용입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
1부 JWT 설치
1단계. Composer를 사용하여 tymon/jwt-auth 설치:
`composer require tymon/jwt-auth 1.0.0-rc.3
2단계. 서비스 공급자 공급자 추가 (Laravel 5.4 이하, 5.5 이상에서는 추가할 필요 없음),
config/app.php 파일의 공급자 배열에 다음 줄을 추가합니다:
<?php // 文件:app.php 'providers' => [ // other code Tymon\JWTAuth\Providers\LaravelServiceProvider::class, ]
3단계. 구성 파일을 게시합니다.
다음을 실행합니다. 명령 jwt-auth 구성 파일 게시:
php artisan Vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
4단계. 키 생성,
이 명령은 .env 파일에 JWT_SECRET=의 새 줄을 추가합니다. 비밀.
php artisan jwt:secret
두 번째 부분에서 구성이 시작됩니다
5단계. 인증 가드 구성, `
config/auth.php 파일에서 가드/드라이버를 jwt로 업데이트해야 합니다.
만약 Laravel 5.2 이상을 사용하는 경우에만 사용할 수 있습니다.
<?php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], // other code 'guards' => [ 'api' => [ 'driver' => 'jwt', 'provider' => 'users', ], ],
6단계.
사용자 모델을 변경하고, 第六步.
更改 User Model,
在User Model上实现TymonJWTAuthContractsJWTSubject接口,
实现getJWTIdentifier() and getJWTCustomClaims()两个方法。
<?php namespace App; use Tymon\JWTAuth\Contracts\JWTSubject; class User extends Authenticatable implements JWTSubject { // other code // Rest omitted for brevity /** * Get the identifier that will be stored in the subject claim of the JWT. * * @return mixed */ public function getJWTIdentifier() { return $this->getKey(); } /** * Return a key value array, containing any custom claims to be added to the JWT. * * @return array */ public function getJWTCustomClaims() { return []; } }
第三部分 快速创建DEMO测试
第七步. 添加一些基本身份验证路由:
<?php Route::group([ 'middleware' => 'api', 'prefix' => 'auth' ], function ($router) { Route::post('login', 'AuthController@login'); Route::post('register', 'AuthController@register'); Route::post('logout', 'AuthController@logout'); Route::post('refresh', 'AuthController@refresh'); Route::post('me', 'AuthController@me'); });
第八步.
사용자 모델에 TymonJWTAuthContractsJWTSubject 인터페이스를 구현하고,
<?php namespace App\Http\Controllers; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class AuthController extends Controller { /** * Create a new AuthController instance. * * @return void */ public function __construct() { $this->middleware('auth:api', ['except' => ['login', 'register']]); } /** * 用户使用邮箱密码获取JWT Token. * * @return \Illuminate\Http\JsonResponse */ public function login() { $credentials = request(['email', 'password']); if (! $token = auth()->attempt($credentials)) { return response()->json(['error' => 'Unauthorized'], 401); } return $this->respondWithToken($token); } /** * 注册新用户 */ public function register(Request $request) { // 数据校验 // 数据验证 $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required', 'c_password' => 'required|same:password' ]); if ($validator->fails()) { return response()->json(['error'=>$validator->errors()], 401); } // 读取参数并保存数据 $input = $request->all(); $input['password'] = bcrypt($input['password']); $user = User::create($input); // 创建Token并返回 return $user; } /** * 获取经过身份验证的用户. * * @return \Illuminate\Http\JsonResponse */ public function me() { return response()->json(auth()->user()); } /** * 刷新Token. * * @return \Illuminate\Http\JsonResponse */ public function refresh() { return $this->respondWithToken(auth()->refresh()); } /** * Get the token array structure. * * @param string $token * * @return \Illuminate\Http\JsonResponse */ protected function respondWithToken($token) { return response()->json([ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => auth()->factory()->getTTL() * 60 ]); } }
3부 빠르게 DEMO 테스트 생성
7단계. 몇 가지 기본 인증 경로를 추가합니다.
rrreee
8단계.
AuthController = > 컨트롤러 AuthController: rrreee9단계. Postman을 사용하여 API 테스트:
🎜 API 데이터 획득을 테스트하려면 헤더에 토큰을 추가해야 합니다. 🎜🎜key =Authorization , 값=Bearer 공간 토큰 🎜🎜🎜🎜🎜토큰 새로 고침: 🎜🎜🎜🎜🎜🎜🎜🎜
위 내용은 Laravel이 JWT를 사용하여 API 사용자 인증을 구현하는 세부 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다
