2017-03-20 1 views
0

Passport가 설치되어 실행 중입니다. 내 애플리케이션에 내 API에 연결되는 JavaScript AJAX가 포함되어 있습니다. 나는 OAuth 시스템 전체를 거치지 않고 세션을 기반으로 작동하도록 노력하고 있습니다. 이것이 가능처럼 문서에서 Laravel Passport - "인증되지 않음"대신 로컬 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} 
      ], 
     ] 
    ); 
}); 

예 자바 스크립트 요청 : 문서가이 요구되는

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, 

을 제거

답변

0

는 API 경로가 제대로 인증을 허용. 이 문제를 다루는 공식/안전한 방법이 아닌 경우 알려 주시기 바랍니다.

관련 문제