pinetco-dev/laravel-impersonate

Laravel Impersonate - 一个允许在Laravel应用程序中轻松且安全地进行用户伪装的包。

2.0.0 2024-03-07 10:19 UTC

This package is auto-updated.

Last update: 2024-09-08 06:54:16 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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)。请参阅 许可证文件 了解更多信息。