pinetco-dev / laravel-impersonate
Laravel Impersonate - 一个允许在Laravel应用程序中轻松且安全地进行用户伪装的包。
2.0.0
2024-03-07 10:19 UTC
Requires
- php: >=8.1
- illuminate/contracts: >=9.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
README
Laravel Impersonate 是一个允许你在 Laravel 应用程序中轻松且安全地伪装其他用户的包。这在使用应用程序部署到生产环境后进行调试和生成场景时特别有用。
安装
您可以通过 composer 安装此包
composer require pinetco-dev/laravel-impersonate
安装包后,您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="impersonate-migrations"
php artisan migrate
使用方法
该包包含一个配置文件,允许您根据需要自定义其设置。您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="impersonate-config"
发布配置文件后,您需要指定 impersonate webhooks 应该击中的应用程序的 URL。为此,请将以下行添加到您的路由文件中
Route::impersonation();
中间件
如果您想保护特定页面免受用户伪装,可以使用 impersonate.protect 中间件。例如
Router::get('/payment', function() { echo "This page cannot be accessed by an impersonator."; })->middleware('impersonate.protect');
Blade
有一些 blade 指令可用于根据用户是否可以伪装或正在被伪装来自定义应用程序的行为。
当用户可以伪装时
@canImpersonate <a href="{{ route('impersonate', $user) }}">Login as {{ $user->name }}</a> @endCanImpersonate
当用户正在被伪装时
@impersonating <a href="{{ route('impersonate.leave', ['impersonate' => get_impersonate_session_value()]) }}"> Leave impersonation mode </a> @endImpersonating
测试
您可以使用以下命令运行测试
composer test
变更日志
请参阅 变更日志 了解最近发生的更改。
贡献
请参阅 贡献指南 获取详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。