我刚刚部署了一个使用 docker to vapor 的应用程序。该应用程序已启动,但我永远无法保持会话,因为当我在服务提供程序启动方法中记录 csrf_token() 方法时,每次请求通过并且应用程序启动时,它都是一个新的 csrf 令牌。我已经搜索了几天为什么会发生这种情况,但没有得到任何解释。任何帮助,将不胜感激。
我已经在 .env 上设置了 SESSION_LIFETIME 变量,但它没有改变任何东西
我刚刚部署了一个使用 docker to vapor 的应用程序。该应用程序已启动,但我永远无法保持会话,因为当我在服务提供程序启动方法中记录 csrf_token() 方法时,每次请求通过并且应用程序启动时,它都是一个新的 csrf 令牌。我已经搜索了几天为什么会发生这种情况,但没有得到任何解释。任何帮助,将不胜感激。
我已经在 .env 上设置了 SESSION_LIFETIME 变量,但它没有改变任何东西
您的登录页面应在挂载时发出此请求
axios.get('/sanctum/csrf-cookie').then(response => {});
您还需要确保在 bootstrap.js 中将 axios withCredentials 设置为 true。
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.withCredentials = true;
对于您的 SESSION_LIFETIME,您是在 .env.production 还是您要部署到的任何环境中设置它?
您可能还需要检查 SESSION_DRIVER 在同一文件中设置的内容
vapor env:pull staging //for example to see what you have