{"repo":"franbarbalopez/mirror","free":true,"listed":false,"github":"https://github.com/franbarbalopez/mirror","clone":"git clone https://github.com/franbarbalopez/mirror.git","description":"Mirror is an elegant user impersonation package for Laravel. It allows administrators to seamlessly log in as other users to troubleshoot issues, provide support, or test user experiences","language":"PHP","stars":163,"topics":["impersonation","laravel","impersonate","laravel-package","php"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"Mirror Secure, elegant user impersonation for Laravel applications. Features Installation Quick Start Usage Configuration Security Exceptions Development Mirror is a Laravel package for safely logging in as another user. It is designed for admin panels, support tooling, QA workflows, and production applications that need impersonation without handing route handling, redirects, or authorization policy decisions to a package. Mirror stores a signed impersonation payload in the session, restores the original user when leaving, supports multiple session guards, exposes lifecycle events for audit logs, and keeps the application in control of the HTTP flow. [!IMPORTANT] Mirror only works with Laravel guards backed by the session driver. Token, API, and stateless guards are intentionally rejected. Features - Signed session state : HMAC-SHA256 verification using your Laravel app.key . - Multi-guard support : resolve the authenticated impersonator guard and infer or explicitly set the target guard. - Explicit authorization hooks : require models to decide who can impersonate and who can be impersonated. - Custom context : attach signed metadata such as support reasons, ticket IDs, or workflow sources. - TTL checks : detect expired impersonation sessions while letting your app decide the response. - Blade directives : render UI based on active impersonation and model capabilities. - Lifecycle events : audit ImpersonationStarted and ImpersonationStopped events. Requirements - PHP 8.2 or","default_branch":null,"files":null,"tree":[],"storefront":"/r/franbarbalopez","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/franbarbalopez/mirror/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}