이 글에서는 laravel dingo/api에 jwt-auth 인증을 추가하는 방법을 주로 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.
We 이전에 배웠던 API를 모든 사람에게 공개하도록 laravel dingo/api를 사용하여 간단한 API를 만드세요. API 호출을 보고 제한하는 방법은 무엇인가요? jwt-auth를 사용하여 JSON 웹 토큰 인증을 확인할 수 있습니다
1. 먼저 jwt-auth 플러그인을 설치하고 작곡가를 사용하여 명령줄에 설치합니다
#🎜🎜 #composer require tymon/jwt-auth '0.5.*'# 🎜🎜#
2을 게시한 다음
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
A jwt. php는 /config/ File
3. 키 생성
php artisan jwt:generate
에 생성됩니다. 실행하면 /config/jwt에서 실행할 수 있습니다. PHP 파일에서 Changeme를 수정하여 직접 키를 설정하세요. 4. /app/Api/Controllers/HelloController.php를
'secret' => env('JWT_SECRET', 'changeme'),
으로 수정합니다. 5. 라우팅을 추가합니다(/routes/web.php )
<?php namespace App\Api\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; //添加jwt-auth认证 use JWTAuth; use Tymon\JWTAuth\Exceptions\JWTException; class HelloController extends Controller { public function index() { return '{content:Helloworld!}'; } //添加jwt-auth认证 public function authenticate(Request $request) { // grab credentials from the request $credentials = $request->only('email', 'password'); try { // attempt to verify the credentials and create a token for the user if (! $token = JWTAuth::attempt($credentials)) { return response()->json(['error' => 'invalid_credentials'], 401); } } catch (JWTException $e) { // something went wrong whilst attempting to encode the token return response()->json(['error' => 'could_not_create_token'], 500); } // all good so return the token return response()->json(compact('token')); } }
6. 테스트 라우팅: php artisan api:routes, 다음 프롬프트가 나타나면 올바른 것입니다#🎜 🎜#
방문 URL: ***.com/api/auth는 토큰이 추가되지 않아 오류를 표시합니다
hellocontrol 다시 수정 및 경로
$api->post('auth', 'App\Api\Controllers\HelloController@authenticate');
#🎜 🎜#
<?php namespace App\Api\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use JWTAuth; use Tymon\JWTAuth\Exceptions\JWTException; class HelloController extends Controller { /** * Create a new controller instance. * * @return void */ /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { return '{content:Helloworld!}'; } public function authenticate(Request $request) { // grab credentials from the request $credentials = $request->only('email', 'password'); try { // attempt to verify the credentials and create a token for the user if (! $token = JWTAuth::attempt($credentials)) { return response()->json(['error' => 'invalid_credentials'], 401); } } catch (JWTException $e) { // something went wrong whilst attempting to encode the token return response()->json(['error' => 'could_not_create_token'], 500); } // all good so return the token return response()->json(compact('token')); } //添加user public function user() { JWTAuth::parseToken(); $user = JWTAuth::parseToken()->authenticate(); return $user; } }
토큰을 얻으려면 Google Chrome 우편 배달부 플러그인을 사용하세요. 아래 그림과 같습니다
획득한 토큰을 복사하여 사용자 인증 토큰에 붙여넣습니다. 두 번째 단계는 아래의 그림 5가 방금 등록한 사용자입니다. #🎜 🎜#위 내용은 모든 분들께 도움이 되기를 바랍니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요! 관련 권장사항:
Passport를 사용하여 Laravel5.5에서 인증 인증을 구현하는 방법에 대한 설명
# 🎜🎜 #Laravel 프레임워크에서 Composer 자동 로딩의 세부 구현
위 내용은 laravel dingo/api에 jwt-auth 인증 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!