【发布时间】:2020-06-19 06:25:58
【问题描述】:
任何带有 auth:airlock 中间件的请求都没有经过身份验证!我收到 401 错误..
我正在按照文档进行操作,首先是对 airlock/csrf-cookie 的获取请求,然后是其他请求..
域和子域都可以!也没有cors错误..
我的 cors.php 文件:
return [
'paths' => ['api/*', '/login', '/logout', 'airlock/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => false,
'max_age' => false,
'supports_credentials' => true,
];
示例 api 请求:
Route::middleware('auth:airlock')->get('/demoitems', 'Api\ItemsController@index');
在 axios 的客户端,我正在设置:
withCredentials: true
登录请求后,cookie 和 laravel 会话正确存储在应用程序 Chrome 的 Cookies 部分中!
但是任何使用气闸中间件的请求都被标记为未授权..
这里是airlock.php
return [
'stateful' => explode(',', env('AIRLOCK_STATEFUL_DOMAINS', 'localhost')),
'expiration' => null,
'middleware' => [
'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
],
];
域被添加到 .ENV 文件的 AIRLOCK_STATEFUL_DOMAIN 中。
API中的认证驱动是“token”..
【问题讨论】: