lasso-media / cake-impersonate
CakePHP 4 的模拟插件
3.0.0
2019-01-21 21:58 UTC
Requires
- php: >5.6
- cakephp/cakephp: ^3.7
Requires (Dev)
README
模拟组件
一个组件,用于存储当前的认证会话并创建新的会话以模拟用户。用户可以在不重新登录的情况下返回到原始的认证会话。
警告
始终要确保攻击者不能在控制器动作中“冒充”其他用户。为了防止劫持当前请求用户不应/不会正常访问的用户账户,您应在加载此组件时在控制器中启用 CsfrComponent 和 SecurityComponent。
此插件绕过了默认的认证机制
要求
- 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');
用法
模拟用户
这需要请求是 POST、PUT、DELETE,以便可以由 SecurityComponent 和 CsrfComponent 保护
$this->Impersonate->login($userIdToImpersonate);
检查当前用户是否被模拟
$this->Impersonate->isImpersonated();
从模拟中登出
$this->Impersonate->logout();