Laravel Passport身份验证错误
我有一个与Laravel和VueJs一起工作的应用程序。我还有一个VK机器人。Bot和Vue使用相同的API路由 对于bot,我将oauth访问令牌与next头一起使用 接受:application/json,授权:Bearer my_token_代码 机器人运行良好 对于VueJs,我使用X-CSRF-TOKEN。当我尝试从vue发送请求时,我收到一个错误 未经认证 我的路线Laravel Passport身份验证错误,laravel,laravel-5,vue.js,axios,laravel-passport,Laravel,Laravel 5,Vue.js,Axios,Laravel Passport,我有一个与Laravel和VueJs一起工作的应用程序。我还有一个VK机器人。Bot和Vue使用相同的API路由 对于bot,我将oauth访问令牌与next头一起使用 接受:application/json,授权:Bearer my_token_代码 机器人运行良好 对于VueJs,我使用X-CSRF-TOKEN。当我尝试从vue发送请求时,我收到一个错误 未经认证 我的路线 Route::middleware('auth:api')->group(function(){ Ro
Route::middleware('auth:api')->group(function(){
Route::get('/prepare/', 'CompgenApiController@prepareDefault');
Route::post('/replace/', 'CompgenApiController@replaceImage');
Route::get('/replaceall/', 'CompgenApiController@replaceAllImages');
Route::get('/collage/', 'CompgenApiController@collage'); //@todo replace to POST
Route::get('/generate/', 'CompgenApiController@generate');
Route::post('/upload/', 'CompgenApiController@userUpload');
Route::post('/reupload/', 'CompgenApiController@moderationReupload');
Route::post('/feedback/', 'CompgenApiController@feedback');
});
我的应用程序/Http/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' => [
'throttle:1000,1',
'bindings',
],
];
我的app.js
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
};
您是否将api guard提供程序更改为“passport”?在config/auth.php上,CSRF令牌不是访问令牌,它是为了缓解问题。好的,我该如何解决我的问题?您需要在axios请求中发送授权令牌,与使用bot时发送的授权令牌相同。在axios中添加一个请求拦截器,并将令牌附加到每个出站请求。下面是Yea中的拦截器示例,但在本例中,我将在请求头中发送auth令牌。一些入侵者将能够利用这些信息入侵我的应用程序(很抱歉,我指的是驱动程序)。当您使用js或vue使用自己的API时,不应该发送任何授权头。
\Laravel\Passport\Http\Middleware\CreateFreshApiToken
中间件会在每个经过身份验证的用户请求上发送一个名为Laravel\u令牌的cookie。但是我已经添加了\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class