パスポートが稼働しています。私のアプリケーションには、私のAPIに接続するJavaScript AJAXが含まれています。私はそれを作るようにしていますので、OAuthシステム全体を処理する代わりにSessionに基づいて動作します。これが可能であるようにドキュメントでLaravel Passport - 「Unauthenticated」を表示するのではなく、ローカルJavascriptリクエストのOAuthを自動的にバイパスします。
、それが見えます:https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript
はしかし、私は現在、「未認証。」取得しています
Kernel.php:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
'api' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\VerifyParametersMiddleware::class,
'throttle:60,1',
'bindings',
],
];
例api.phpルート:
Route::group(['middleware' => ['auth:api']], function() {
Route::resource('canvas-item', 'CanvasItemController',
[
'only' => [
'index', // GET api/canvas-item
'store', // POST api/canvas-item
'update', // PUT api/canvas-item/{canvas-item-id}
'destroy' // DELETE api/canvas-item/{canvas-item-id}
],
]
);
});
例JavaScriptの要求:ドキュメントを持っているために求めている
function ajaxRequest() {
$.APIAjax({
url: '{{ url('api/canvas-item') }}',
type: 'POST',
data: {
testing: null
},
success: function(jsonResponse) {},
error: function(jsonResponse) {}
});
}
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': token
}
});
ヘッダ正しく設定されました:
X-CSRF-TOKEN
"<tokenhere>"
X-Requested-With
"XMLHttpRequest"
過去の「認証されていない」取得方法に関するアイデア要求が同じサーバーから来ている場合
ありがとうございます! Kernel.php
から
\App\Http\Middleware\EncryptCookies::class,
を削除