lasso-media/cake-impersonate

CakePHP 4 的模拟插件

安装: 1

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 3

类型:cakephp-plugin

3.0.0 2019-01-21 21:58 UTC

This package is auto-updated.

Last update: 2024-09-10 17:07:39 UTC


README

模拟组件

一个组件,用于存储当前的认证会话并创建新的会话以模拟用户。用户可以在不重新登录的情况下返回到原始的认证会话。

警告

始终要确保攻击者不能在控制器动作中“冒充”其他用户。为了防止劫持当前请求用户不应/不会正常访问的用户账户,您应在加载此组件时在控制器中启用 CsfrComponentSecurityComponent

此插件绕过了默认的认证机制

要求

  1. CakePHP 4.x

安装/升级

composer require lasso-media/cake-impersonate:"^3.0"

插件加载

打开 \src\Application.php 添加

$this->addPlugin('CakeImpersonate');

到您的 bootstrap() 方法或调用 bin/cake plugin load CakeImpersonate

组件加载

从控制器加载组件

$this->loadComponent('CakeImpersonate.Impersonate'); 

配置会话密钥

打开 configure\app.php 并添加

'Impersonate' => [
    'sessionKey' => 'OriginalAuth'
]

return []; 或在加载组件时使用 Configure::write('Impersonate.sessionKey', 'OriginalAuth');

用法

模拟用户

这需要请求是 POSTPUTDELETE,以便可以由 SecurityComponentCsrfComponent 保护

$this->Impersonate->login($userIdToImpersonate);

检查当前用户是否被模拟

$this->Impersonate->isImpersonated();

从模拟中登出

$this->Impersonate->logout();