【发布时间】:2019-05-19 10:24:29
【问题描述】:
我正在尝试使用 PHP 7.2.13 在 Laravel 5.7.18 上安装 Laravel Passport。
我的应用程序使用 JavaScript(带有 Vue 的 Axios)在其内部使用 API
我在 JavaScript Web 应用程序中收到 401 Unauthorized 错误。我已经 read the documentation 并将 CreateFreshApiToken 添加到网络内核。 laravel_token cookie 实际上是在设置自己。但是,数据库中的 oauth 表是干净的。
Http/内核:
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:60,1',
'bindings',
],
];
JavaScript:
axios.get("api/users/" + id).then(({ data }) => {
this.user = data;
});
Auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
路由(Api.php):
Route::middleware('auth:api')->group(function () {
Route::resource('users', 'UserController');
Route::resource('groups', 'GroupController');
// .. plus more resources
});
Axios 配置:
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
var token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
【问题讨论】:
标签: laravel laravel-5 oauth-2.0 axios laravel-passport