我已经启动并运行了Passport。我的应用程序包含连接到我的API的JavaScript AJAX。我试图做到这一点,它只是基于Session而不是必须通过整个OAuth系统。
在文档中,看起来这是可能的:https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript
但是,我目前正在接受#34;未经身份验证。"
Kernel.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}
],
]
);
});
api.php路由示例:
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
}
});
示例JavaScript请求:
X-CSRF-TOKEN
"<tokenhere>"
X-Requested-With
"XMLHttpRequest"
文档要求的标题已正确设置:
IEnumerable<Ball> balls = things.OfType<Ball>();
IEnumerable<Car> cars = things.OfType<Car>();
关于我如何能够过去的任何想法&#39; Unauthenticated。&#39;如果请求来自同一台服务器?
谢谢!
答案 0 :(得分:0)
卸下
\App\Http\Middleware\EncryptCookies::class,
来自Kernel.php
允许正确验证API路由。如果这不是处理此问题的官方/安全方式,请告诉我。