chadhurin / laravel-masquerade
使用强大的 Laravel Masquerade 包提升您的用户管理体验。该包专为与 Laravel 应用程序无缝集成而设计,使管理员能够临时切换并从另一个用户的视角查看应用程序。无论是调试、测试用户体验还是验证权限,我们的 Masquerade 包都能简化流程。
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
使用强大的 Laravel Masquerade 包提升您的用户管理体验。该包专为与 Laravel 应用程序无缝集成而设计,使管理员能够临时切换并从另一个用户的视角查看应用程序。无论是调试、测试用户体验还是验证权限,我们的 Masquerade 包都能简化流程。
主要功能
- 轻松切换用户:快速安全地切换到应用程序内的任何用户账户。
- 真实用户体验:以所选用户的视角体验应用程序,深入了解。
- 高级权限测试:轻松验证和排除用户权限问题。
- 开发者友好:直观的设置和配置,轻松集成到现有 Laravel 项目中。
灵感
此包受到 laravel-impersonate 包中出色工作的启发。我们认识到它对社区的价值,并致力于在此基础上进行改进,同时添加了我们独特的功能,特别是对 Laravel Sanctum 的支持。我们需要快速添加对 Sanctum 的支持,因此省略了一些其他功能。我们希望将来能够添加它们。
要求
- Laravel 10.x
- PHP >= 8.0
安装
您可以通过 composer 安装此包
composer require chadhurin/laravel-masquerade
然后,将特质 Chadhurin\LaravelMasquerade\Traits\Masquerade
添加到您的 User 模型中。
用法
简单用法
伪装用户
Auth::user()->masquerade($other_user); // You're now logged as the $other_user
离开伪装
Auth::user()->leaveMasquerade(); // You're now logged as your original user.
使用内置控制器
在您的路由文件中,在 web 中间件下,您必须调用 masquerade
路由宏。
Route::masquerade();
高级用法
定义伪装授权
默认情况下,所有用户都可以 伪装 用户。
您需要将方法 canMasquerade()
添加到您的用户模型中
/** * @return bool */ public function canMasquerade(): bool { return $this->hasRole('super-admin'); // For example, you can check if the user has a specific role. }
默认情况下,所有用户都可以 被伪装。
您需要将方法 canBeMasqueraded()
添加到您的用户模型中,以扩展此行为
/** * @return bool */ public function canBeMasqueraded():bool { return !$this->hasRole('super-admin') && $this->can_be_masqueraded; // For example, you can check if the user has a specific role and if the user has a flag on the users table }
配置
该包附带一个配置文件。
使用以下命令发布它
php artisan vendor:publish --tag=masquerade
可用选项
'take_redirect_to' => '/', 'leave_redirect_to' => '/'
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件 chadhurin@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。
Laravel 包模板
此包是使用 Laravel 包模板 生成的。