jomweb/cake-impersonate

CakePHP 3 的 Impersonate 插件

安装次数: 4 019

依赖项: 0

建议者: 0

安全性: 0

星标: 7

关注者: 6

分支: 3

开放问题: 1

类型:cakephp-plugin

4.0.0-beta1 2020-01-07 20:54 UTC

This package is auto-updated.

Last update: 2024-09-08 11:47:01 UTC


README

Build Status Coverage Status Latest Stable Version Minimum PHP Version License Total Downloads

Impersonate 组件

一个存储当前认证会话并为模拟用户创建新会话的组件。用户可以无需重新登录即可返回到原始认证会话。

警告

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

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

要求

  1. 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');

使用方法

模拟用户

这需要一个 POSTPUTDELETE 请求,以便它可以由 SecurityComponentCsrfComponent 保护

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

检查当前用户是否被模拟

$this->Impersonate->isImpersonated();

从模拟用户注销

$this->Impersonate->logout();