anubra266 / browser-sessions
在Laravel应用程序中管理浏览器会话
v1.1.2
2020-12-25 21:43 UTC
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^8.0
- jenssegers/agent: ^2.6
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
- vimeo/psalm: ^4.3
README
在Laravel应用程序中管理用户账户的浏览器会话。内容
功能
- 列出浏览器会话
- 注销所有浏览器会话
安装
您可以通过composer安装此包
composer require anubra266/browser-sessions
编辑config/session.php
并更改驱动程序
'driver' => 'database'
创建会话迁移并迁移
php artisan session:table php artisan migrate
确保Illuminate\Session\Middleware\AuthenticateSession
中间件存在于您的app/Http/Kernel.php
类中的web中间件组,并且没有被注释掉
'web' => [ // ... \Illuminate\Session\Middleware\AuthenticateSession::class, // ... ],
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Anubra266\BrowserSessions\BrowserSessionsServiceProvider" --tag="config"
使用
获取会话
后端
# SettingsController.php //Get a collection of sessions public function showSessions(){ // This method accepts the request instance $sessions = BrowserSessions::collect(request()); //Pass the collection to your view return view('sessions', ["sessions" => $sessions->all()]); }
输出格式
{ 'agent' :{ 'is_desktop' : boolean, 'platform' : string, 'browser' : string, }, 'ip_address' : string, 'is_current_device' : boolean, 'last_active' : string, }
注销所有会话
向名为路由browser.sessions.logout
发送Post请求。
<form action="{{route('browser.sessions.logout')}}" method="post"> @csrf <input type="password" placeholder="Enter your password" name="password" /> <button>Logout All Devices</button> </form>
注意:
- 您可以通过更改
config/browser-sessions.php
中logoutAllSessions
键的值来更改此命名路由。 - 验证错误以
logoutOtherBrowserSessions
命名的错误包返回。您可以通过编辑config/browser-sessions.php
中errorBag
键的值来更改此。
测试
composer test
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。