{"id":15754677,"url":"https://github.com/anubra266/browser-sessions","last_synced_at":"2025-03-13T15:33:00.149Z","repository":{"id":40469021,"uuid":"323499632","full_name":"anubra266/browser-sessions","owner":"anubra266","description":"🧑‍💻 Manage Browser Sessions in a Laravel Application","archived":false,"fork":false,"pushed_at":"2023-09-07T09:19:58.000Z","size":56,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T20:22:18.600Z","etag":null,"topics":["laravel","php","security","session-management"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anubra266.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"anubra266","patreon":"anubra266","kofi":"anubra266"}},"created_at":"2020-12-22T02:29:10.000Z","updated_at":"2024-05-07T01:29:40.000Z","dependencies_parsed_at":"2024-10-25T06:46:41.834Z","dependency_job_id":"700c4305-f849-4343-9c32-947ba91ec6fa","html_url":"https://github.com/anubra266/browser-sessions","commit_stats":{"total_commits":41,"total_committers":4,"mean_commits":10.25,"dds":"0.12195121951219512","last_synced_commit":"4946483eb9f1e9459664182f3de0e2e07fbd841c"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":"spatie/package-skeleton-laravel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubra266%2Fbrowser-sessions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubra266%2Fbrowser-sessions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubra266%2Fbrowser-sessions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anubra266%2Fbrowser-sessions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anubra266","download_url":"https://codeload.github.com/anubra266/browser-sessions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243433036,"owners_count":20290196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","php","security","session-management"],"created_at":"2024-10-04T08:04:20.913Z","updated_at":"2025-03-13T15:32:59.851Z","avatar_url":"https://github.com/anubra266.png","language":"PHP","funding_links":["https://github.com/sponsors/anubra266","https://patreon.com/anubra266","anubra266"],"categories":[],"sub_categories":[],"readme":"# Browser Sessions\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/anubra266/browser-sessions/Tests?style=for-the-badge)](https://github.com/anubra266/browser-sessions/actions?query=workflow%3ATests)\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/anubra266/browser-sessions.svg?style=for-the-badge\u0026logo=packagist)](https://packagist.org/packages/anubra266/browser-sessions)\n[![License](https://img.shields.io/github/license/anubra266/browser-sessions.svg?style=for-the-badge)](https://github.com/anubra266/browser-sessions/blob/master/LICENSE)\n[![Total Downloads](https://img.shields.io/packagist/dt/anubra266/browser-sessions.svg?style=for-the-badge)](https://packagist.org/packages/anubra266/browser-sessions)\n[![Author](https://img.shields.io/badge/author-@anubra266-blue.svg?style=for-the-badge)](https://github.com/anubra266)\n\n\u003c/div\u003e\nManage User Accounts' Browser Sessions in a Laravel Application.\n\n## Contents\n\n-   [Features](#Features)\n-   [Installation](#installation)\n-   [Usage](#Usage)\n    -   [Get Sessions](#Get-Sessions)\n        -   [Backend](#Backend)\n        -   [Output Format](#Output-Format)\n    -   [Logout All Sessions](#Logout-All-Sessions)\n-   [Testing](#Testing)\n-   [Credits](#Credits)\n-   [License](#License)\n\n## Features\n\n-   [x] List Browser Sessions\n-   [x] Logout All Browser Sessions\n\n## Installation\n\nYou can install the package via composer:\n\n```bash\ncomposer require anubra266/browser-sessions\n```\n\nEdit `config/session.php` and change the Driver\n\n```php\n'driver' =\u003e 'database'\n```\n\nCreate Session Migration and Migrate\n\n```bash\nphp artisan session:table\n\nphp artisan migrate\n```\n\nMake sure that the `Illuminate\\Session\\Middleware\\AuthenticateSession` middleware is present and un-commented in your `app/Http/Kernel.php class` web middleware group:\n\n```php\n'web' =\u003e [\n    // ...\n    \\Illuminate\\Session\\Middleware\\AuthenticateSession::class,\n    // ...\n],\n```\n\nYou can publish the config file with:\n\n```bash\nphp artisan vendor:publish --provider=\"Anubra266\\BrowserSessions\\BrowserSessionsServiceProvider\" --tag=\"config\"\n```\n\n## Usage\n\n### Get Sessions\n\n#### **Backend**\n\n```php\n# SettingsController.php\n\n//Get a collection of sessions\npublic function showSessions(){\n    // This method accepts the request instance\n    $sessions = BrowserSessions::collect(request());\n    //Pass the collection to your view\n    return view('sessions', [\"sessions\" =\u003e $sessions-\u003eall()]);\n\n}\n```\n\n#### **Output Format**\n\n```js\n{\n    'agent' :{\n        'is_desktop' : boolean,\n        'platform' : string,\n        'browser' : string,\n    },\n    'ip_address' : string,\n    'is_current_device' : boolean,\n    'last_active' : string,\n}\n```\n\n## Logout All Sessions\n\nSend a Post Request to the named route `browser.sessions.logout`.\n\n```html\n\u003cform action=\"{{route('browser.sessions.logout')}}\" method=\"post\"\u003e\n    @csrf\n    \u003cinput type=\"password\" placeholder=\"Enter your password\" name=\"password\" /\u003e\n    \u003cbutton\u003eLogout All Devices\u003c/button\u003e\n\u003c/form\u003e\n```\n\n**NB**:\n\n-   You can change this named route by changing the value of the `logoutAllSessions` key in `config/browser-sessions.php`.\n-   Validation errors are returned in errorBag named `logoutOtherBrowserSessions`. You can change this by editing the value of the `errorBag` key in `config/browser-sessions.php`.\n\n## Testing\n\n```bash\ncomposer test\n```\n\n## Credits\n\n-   [Abraham](https://github.com/Abraham)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubra266%2Fbrowser-sessions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanubra266%2Fbrowser-sessions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubra266%2Fbrowser-sessions/lists"}