anubra266/browser-sessions

在Laravel应用程序中管理浏览器会话

v1.1.2 2020-12-25 21:43 UTC

This package is auto-updated.

Last update: 2024-09-07 11:24:04 UTC


README

GitHub Workflow Status Latest Version on Packagist License Total Downloads Author

在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.phplogoutAllSessions键的值来更改此命名路由。
  • 验证错误以logoutOtherBrowserSessions命名的错误包返回。您可以通过编辑config/browser-sessions.phperrorBag键的值来更改此。

测试

composer test

致谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件