>  기사  >  백엔드 개발  >  laravel dingo/api에 jwt-auth 인증 추가

laravel dingo/api에 jwt-auth 인증 추가

不言
不言원래의
2018-07-09 09:48:543178검색

이 글에서는 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 &#39;{content:Helloworld!}&#39;;
    }
//添加jwt-auth认证
  	public function authenticate(Request $request)
    {
        // grab credentials from the request
        $credentials = $request->only(&#39;email&#39;, &#39;password&#39;);

        try {
            // attempt to verify the credentials and create a token for the user
            if (! $token = JWTAuth::attempt($credentials)) {
                return response()->json([&#39;error&#39; => &#39;invalid_credentials&#39;], 401);
            }
        } catch (JWTException $e) {
            // something went wrong whilst attempting to encode the token
            return response()->json([&#39;error&#39; => &#39;could_not_create_token&#39;], 500);
        }

        // all good so return the token
        return response()->json(compact(&#39;token&#39;));
    }
}

6. 테스트 라우팅: php artisan api:routes, 다음 프롬프트가 나타나면 올바른 것입니다#🎜 🎜#

방문 URL: ***.com/api/auth는 토큰이 추가되지 않아 오류를 표시합니다

hellocontrol 다시 수정 및 경로

$api->post(&#39;auth&#39;, &#39;App\Api\Controllers\HelloController@authenticate&#39;);

#🎜 🎜#

<?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 &#39;{content:Helloworld!}&#39;;
    }
  	public function authenticate(Request $request)
    {
        // grab credentials from the request
        $credentials = $request->only(&#39;email&#39;, &#39;password&#39;);

        try {
            // attempt to verify the credentials and create a token for the user
            if (! $token = JWTAuth::attempt($credentials)) {
                return response()->json([&#39;error&#39; => &#39;invalid_credentials&#39;], 401);
            }
        } catch (JWTException $e) {
            // something went wrong whilst attempting to encode the token
            return response()->json([&#39;error&#39; => &#39;could_not_create_token&#39;], 500);
        }

        // all good so return the token
        return response()->json(compact(&#39;token&#39;));
    }
  //添加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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.