imi / laravel-transsid
Laravel 5-8 项目中的 Trans_SID(URL 中的会话 ID)
5.0.2
2024-07-03 07:16 UTC
README
此模块为所有 URL 添加了保持会话 ID(通常存储在会话 cookie 中)的支持。如果你的应用程序在 Iframe 中运行,这尤其有用,因为某些浏览器会阻止这些 Iframe 中的 cookie。PHP 已经提供了 session.use_trans_sid
配置值来实现这一功能,但由于 Laravel 5 以其独特的方式实现会话,因此我们的模块是必要的。
兼容性
安装
- 使用 composer 安装
imi/laravel-transsid
。 - 在你的
config/app.php
的providers
中,将'Illuminate\Session\SessionServiceProvider'
替换为\iMi\LaravelTransSid\SessionServiceProvider::class
- 在 providers 数组末尾添加
\iMi\LaravelTransSid\UrlServiceProvider::class
- (可选) 在你的
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 相关的开源模块。如果你遇到任何错误,你可能会想在这里打开一个问题。
需要支持或在一个现有系统中实现一个模块,随时联系我们。在这种情况下,我们将提供有偿的全服务支持。
当然,我们还提供封闭源代码模块的开发。