Laravel Passport 및 클라이언트 자격 증명으로 자체 API를 사용하는 방법
퍼스널 액세스 토큰을 가진 사용자를 위해 올바르게 설정했지만 모든 api 루트를 보호하고 싶습니다.클라이언트 자격 증명 부여 토큰처럼 들리는 문서를 읽는 것이 필요합니다.에 클라이언트 ID와 클라이언트 시크릿이 있습니다..env파일; 추가했습니다.client미들웨어 사용\Laravel\Passport\Http\Middleware\CheckClientCredentials::class이를 일부 API 루트에 적용했습니다.
나는 Vue와 Axios를 사용하고 있다.
이러한 보호된 API 루트에 액세스하기 위해 필요한 토큰을 취득하고 설정하려면 어떻게 해야 합니까?
Laravel 문서는 "당신의 API를 소비한다"는 것에 대해 명확하지 않습니다.나는 또한 며칠 동안 구글을 검색했고 심지어 라라카스트도 구독했다.도움이 안 돼요.이제 작동했어, 이건 내 노트에 있던 쓰레기야.
순서 1 - Passport 설치
composer require laravel/passport
php artisan migrate
php artisan passport:install
순서 2 - /app/User.php 편집
use HasApiTokens,Notifiable
스텝 3 - /app/Providers/Auth Service Provider 편집php
use Laravel\Passport\Passport;
public function boot()
{
$this->registerPolicies();
Passport::routes();
}
스텝 4 - /config/auth.php 편집
enter code 'api' => [
'driver' => 'passport',
'provider' => 'users',
],
순서 5 - 프론트 엔드 퀵 스타트
php artisan vendor:publish --tag=passport-components
순서 6 - /resources/assets/js/app.js 편집
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단계 - 인증경로 및 뷰스킴프릿
php artisan make:auth
스텝 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', 'HomeController@index')->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 JavaScript 발판은 Axios에게 항상 X-CSRF-TOKEN 및 X-Requested-With 헤더를 전송하도록 지시합니다.
출처:
https://laravel.com/docs/5.5/passport
https://www.itechempires.com/2017/09/laravel-5-5-api-user-authentication-passport-package/
언급URL : https://stackoverflow.com/questions/46131610/how-to-consume-own-api-with-laravel-passport-and-client-credentials
'source' 카테고리의 다른 글
| Java 시간 기반 맵/캐시(만료된 키 포함) (0) | 2022.08.08 |
|---|---|
| Java 8 스트림을 중단하거나 각 스트림에서 반환하시겠습니까? (0) | 2022.08.08 |
| Vuejs. 하위 구성 요소의 프로펠을 변환해도 경고가 트리거되지 않습니다.왜 그럴까 (0) | 2022.08.08 |
| Ubuntu에 Java 7 설치 (0) | 2022.08.08 |
| C의 외부 .c 파일에서 함수를 호출하는 방법 (0) | 2022.08.08 |