我一直试图让 Laravel Airlock 与我正在开发的新 Web 应用程序一起工作,但无论我尝试什么,我都无法让它工作。
airlock.php 有以下设置:
'stateful' => ['https://control.domain.tld',
'https://management.domain.tld',
'localhost'],
cors.php 有:
'paths' => ['api/*', 'login', 'airlock/csrf-cookie'],
'supports_credentials' => true,
我的 .env 有:
SESSION_DRIVER=cookie
session.php 有:
'domain' => env('SESSION_DOMAIN', null),
在我的 Vue 应用程序中,我正在运行此 Axios 请求,但我不断收到 CSRF 令牌不匹配。
axios.get('https://controlapi-v2.domain.tld/airlock/csrf-cookie').then(response => {
console.log(response);
});
我以零运气遵循了所有在线指南。我在这里能错过什么?
airlock.php 中的有状态变量有 3 个 URL,因为我的应用程序将位于 2 个域和 localhost 上以进行开发和测试。我目前只在 localhost 上尝试过这个,我想知道这是否导致了这个问题。
如果我将 localhost 更改为http://localhost我不再得到 CSRF 令牌不匹配但是当我检查 Chrome 开发工具时,没有设置 cookie。
我还读到 SPA 必须与 API 位于同一个子域中才能使 Airlock 工作。这是真的?