2017-09-09 9 views
1

Passport를 처음 사용하는 분은 나와 새끼를 낳으십시오.Laravel Passport 및 클라이언트 자격증 명과 함께 자체 API를 사용하는 방법?

개인 액세스 토큰이있는 사용자는 올바르게 설정했지만 모든 API 경로는 보호하고 싶습니다. Client Credentials Grant Tokens처럼 들리는 문서를 읽는 것이 내가 필요한 것입니다. 내 .env 파일에 클라이언트 ID와 클라이언트 비밀 번호가 있습니다. \Laravel\Passport\Http\Middleware\CheckClientCredentials::class을 사용하여 client 미들웨어를 추가했으며이를 일부 API 경로에 적용했습니다.

나는 Vue와 axios를 사용하고 있습니다.

보호 된 API 경로에 액세스하는 데 필요한 토큰을 가져오고 설정하려면 어떻게해야합니까?

답변

0

Laravel 문서는 "사용자 자신의 API 사용"에 대해 분명히 명확하지 않습니다. 나는 또한 며칠 동안 인터넷 검색을하고 심지어 라라 캐스트에 구독했다. 도움이 안된다. 나는 지금 일하고있어, 이것은 내 노트에서 덤프이다.

1 단계 - 설치 여권

composer require laravel/passport 
php artisan migrate 
php artisan passport:install 

2 단계 - /app/User.php을 편집

use HasApiTokens,Notifiable 

3 단계 -

use Laravel\Passport\Passport; 

public function boot() 
{ 
    $this->registerPolicies(); 
    Passport::routes(); 
} 
/app/Providers/AuthServiceProvider.php을 편집

4 단계 - /config/auth.php 편집

enter code  'api' => [ 
    'driver' => 'passport', 
    'provider' => 'users', 
], 

5 단계 - 프론트 엔드는 빠른

php artisan vendor:publish --tag=passport-components 

6 단계 - 인증 경로와 뷰

php artisan make:auth 
비계 - 편집

require('./bootstrap'); 

window.Vue = require('vue'); 

Vue.component(
    'passport-clients', 
    require('./components/passport/Clients.vue') 
); 

Vue.component(
    'passport-authorized-clients', 
    require('./components/passport/AuthorizedClients.vue') 
); 

Vue.component(
    'passport-personal-access-tokens', 
    require('./components/passport/PersonalAccessTokens.vue') 
); 

const app = new Vue({ 
    el: '#app' 
}); 

7 단계 /resources/assets/js/app.js

8 단계 - /app/Http/Kernel.php 편집

protected $middlewareGroups = [ 
     'web' => [ 
      ... 
      \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, 

9 단계 - 편집 /routes/web.php (이 귀하의 질문에 대한 대답)

// Authorization routes Laravel Passport 
Auth::routes(); 

// Landing page 
Route::get('/', function() { return view('welcome');}); 

// Auth protected routes 
Route::group(['middleware' => ['web', 'auth']], function() { 
    Route::get('home', '[email protected]')->name('home'); 
    Route::get('example', function(){ return view('example'); }); 
} 
//(stolen from /vendor/laravel/passport/src/RouteRegistrar.php - forAuthorization method) 

10 단계 - 아무것도 - 자산

npm i -g npm 
npm install 
npm run dev 

11 단계를 컴파일합니다. VueJS와 Axios 쪽에서는 아무 것도 할 필요가 없습니다.

당신은 할 수 있습니다 :

axios.get('URL_XYZ') 
.then(response => { 
    console.log(response.data); 
}); 

Laravel 워드 프로세서 :

인증이 방법을 사용하여, 기본 Laravel 자바 스크립트 비계는 항상 X-CSRF 토큰 및 X를 보낼 Axios의 지시를 - 요청 됨 - 헤더가 있습니다.

출처 :
https://laravel.com/docs/5.5/passport
https://www.itechempires.com/2017/09/laravel-5-5-api-user-authentication-passport-package/