imi/laravel-transsid

Laravel 5-8 项目中的 Trans_SID(URL 中的会话 ID)

5.0.2 2024-07-03 07:16 UTC

This package is auto-updated.

Last update: 2024-09-03 07:42:09 UTC


README

此模块为所有 URL 添加了保持会话 ID(通常存储在会话 cookie 中)的支持。如果你的应用程序在 Iframe 中运行,这尤其有用,因为某些浏览器会阻止这些 Iframe 中的 cookie。PHP 已经提供了 session.use_trans_sid 配置值来实现这一功能,但由于 Laravel 5 以其独特的方式实现会话,因此我们的模块是必要的。

兼容性

安装

  1. 使用 composer 安装 imi/laravel-transsid
  2. 在你的 config/app.phpproviders 中,将 'Illuminate\Session\SessionServiceProvider' 替换为 \iMi\LaravelTransSid\SessionServiceProvider::class
  3. 在 providers 数组末尾添加 \iMi\LaravelTransSid\UrlServiceProvider::class
  4. (可选) 在你的 app/Http/Kernel.php 中,将 'urlsession' => \iMi\LaravelTransSid\UrlSession::class 添加到 $routeMiddleware 数组。

使用方法

要使用 URL 中的会话 ID,请添加中间件 urlsession(如果你全局注册了中间件)或直接将 \iMi\LaravelTransSid\UrlSession::class 类添加到你的路由或路由组。

使用 Laravel 的 URL 函数生成的 URL(例如 URL::to())现在将附加会话 ID。

如果直接路径或 previous() 方法被使用,SID 总是会添加,因为没有已知的路由。如果你希望生成不带会话 ID 的 URL,请添加 NO_ADD_SID 参数。

{{ URL::to('/', ['NO_ADD_SID' => true]) }}

Livewire 支持

要使用 Livewire 时包含会话 ID,请将此脚本添加到你的页面中

<script type="text/javascript">
    document.addEventListener('livewire:load', function(event) {
        Livewire.addHeaders({
            'X-session': '{{ Session::getId() }}',
        })
    });
</script>

警告

URL 中的会话 ID 比会话 cookie 更容易被盗。

关于我们

iMi digital GmbH 提供与 Laravel 相关的开源模块。如果你遇到任何错误,你可能会想在这里打开一个问题。

需要支持或在一个现有系统中实现一个模块,随时联系我们。在这种情况下,我们将提供有偿的全服务支持。

当然,我们还提供封闭源代码模块的开发。