jomweb / cake-impersonate
CakePHP 3 的 Impersonate 插件
4.0.0-beta1
2020-01-07 20:54 UTC
Requires
- php: >=7.2
- cakephp/cakephp: ^4.0.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-08 11:47:01 UTC
README
Impersonate 组件
一个存储当前认证会话并为模拟用户创建新会话的组件。用户可以无需重新登录即可返回到原始认证会话。
警告
始终要确保攻击者不能在控制器操作中“伪装”其他用户。为了防止劫持当前请求用户不应/不会正常访问的用户账户,您应该在加载此组件时在控制器中启用 CsfrComponent 和 SecurityComponent。
此插件绕过了默认的认证机制
要求
- CakePHP 3.7 及以上版本。
安装/升级
composer require jomweb/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();