dereuromark / cakephp-tinyauth
一个用于简单处理用户认证和授权的 CakePHP 插件。
Requires
- php: >=8.1
- cakephp/cakephp: ^5.0.0
Requires (Dev)
- cakephp/authentication: ^3.0.1
- cakephp/authorization: ^3.0.1
- cakephp/debug_kit: ^5.0.1
- composer/semver: ^3.0
- fig-r/psr2r-sniffer: dev-master
- phpunit/phpunit: ^10.2
This package is auto-updated.
Last update: 2024-09-16 20:39:40 UTC
README
一个用于简单处理认证和用户授权的 CakePHP 插件。
此分支适用于 CakePHP 5.0+。详细信息请参阅版本映射。
功能
认证
哪些是公开操作,哪些需要登录?
- 强大的通配符 (*) 操作符。
- 快速设置,5分钟内完成集成。
授权
登录后,您可以看到哪些操作?
- 单角色:1个用户有1个角色(例如,用户和角色表)
- 多角色:1个用户可以有1...n个角色(例如,用户、角色和“roles_users”交叉表)
- 快速设置,5分钟内完成集成。
有用的助手
- AuthUser 组件和助手用于访问状态和状态“auth数据”。
- Authentication 组件和助手用于检查当前其他操作上的
isPublic()
。 - Auth DebugKit 面板,可详细了解当前 URL 和认证状态。
这是什么想法?
默认的 CakePHP 认证和授权至少依赖于每个控制器中的代码更改,可能更多。此插件通过一行更改即可钩入,并使用配置文件管理所有这些,无需触摸所有这些控制器,包括插件控制器。
还可以在不编写代码的情况下管理配置文件。此外,它还可以通过适配器完全移动到数据库,并由 CRUD 后端管理。
问自己:你是否需要完整的(RBAC 数据库)ACL 产生的开销和复杂性?请参阅我的帖子 acl-access-control-lists-revised/。如果不是,那么这个插件可能是你的答案,并且是解决你的认证问题的超级快速解决方案 :)
即使你不利用认证或授权,可用的 AuthUserComponent 和 AuthUserHelper 在处理控制器或视图级别的基于角色的决策时也非常有用。它们也可以独立工作。
演示
查看https://sandbox.dereuromark.de/auth-sandbox
auth_allow.ini
为每个控制器定义公开操作(任何人都可以访问)
Users = index,view Admin/Maintenance = pingCheck PluginName.SomeController = * MyPlugin.Api/V1 = *
auth_acl.ini
定义哪些操作可以由哪些登录用户角色访问
[Users] index = * add,edit = user,super-user [Admin/Users] * = admin [Translate.Admin/Languages] * = *
AuthUser 组件和助手
$currentId = $this->AuthUser->id(); $isMe = $this->AuthUser->isMe($userEntity->id); if ($this->AuthUser->hasRole('mod')) { } if ($this->AuthUser->hasAccess(['action' => 'secretArea'])) { } // Helper only echo $this->AuthUser->link('Admin Backend', ['prefix' => 'Admin', 'action' => 'index']); echo $this->AuthUser->postLink('Delete', ['action' => 'delete', $id], ['confirm' => 'Sure?']);
安装
包含插件的方法与每个其他 CakePHP 插件类似
composer require dereuromark/cakephp-tinyauth
然后,要加载插件,请运行以下命令
bin/cake plugin load TinyAuth
或手动将以下行添加到您的应用 src/Application.php
文件的 bootstrap()
函数中
$this->addPlugin('TinyAuth');
这样就可以了。它应该已经启动并运行。
文档
有关设置和使用方法,请参阅文档。
另外,请注意原始的博客文章以及它是如何开始的。