在 Laravel 中禁用会话

Posted

技术标签:

【中文标题】在 Laravel 中禁用会话【英文标题】:Disable session in Laravel 【发布时间】:2015-10-13 21:23:24 【问题描述】:

我正在开发无状态的 resful API 应用程序,所以我根本不需要会话。

我从protected $middleware = []; 中的\app\Http\Kernel.php 中删除了带有\Illuminate\Session\Middleware\StartSession::class, 的一行我还从.env 文件中删除了SESSION_DRIVE。但我收到以下错误:

RuntimeException in Request.php line 756: Session store not set on request.

如何在 Laravel 5 中关闭会话?

【问题讨论】:

【参考方案1】:

也从您的中间件中删除 Illuminate\Foundation\Http\Middleware\VerifyCsrfTokenIlluminate\View\Middleware\ShareErrorsFromSession 类。这些功能需要会话。

不是必需的,但我也可能建议将您的会话驱动程序设置为array,这样如果您使用的任何功能需要会话功能,它们至少可以正常工作而不会引发错误。正如它所建议的,数组驱动程序将所有会话数据存储在标准 PHP 数组中,因此一旦请求完成,所有内容都会被删除。

【讨论】:

\Illuminate\View\Middleware\ShareErrorsFromSession::class 也需要会话。

以上是关于在 Laravel 中禁用会话的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中设置会话超时?

Laravel 如何在会话 Laravel 中存储额外的数据/值

在 3rd 方插件中访问 laravel 会话

如何在 Laravel 中禁用 CSRF 令牌以及为啥我们必须禁用它?

如何防止 Laravel 中的会话/cookie 刷新?

在 Laravel 中禁用速率限制器?