noraziz / ci4-aauth
Aauth 是 CodeIgniter 4.x 的用户授权库,原始版本 https://github.com/emreakay/CodeIgniter-Aauth
Requires
- php: >=7.3.0
Requires (Dev)
- codeigniter4/framework: ^4.2
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-03 23:04:25 UTC
README
Aauth 是 CodeIgniter 4.x 的用户授权库,原始版本 aauth,旨在简化一些基本任务,如登录、权限和访问操作。尽管使用简单,它还具备高级功能,如私人消息、分组、访问管理和公开访问。
这是快速入门页面。您还可以查看 详细文档 Wiki 了解其他优秀功能
功能
- 用户管理和操作(登录、登出、注册、通过电子邮件验证、忘记密码、用户封禁、登录DDoS保护)
- 分组操作(创建/删除分组、成员管理)
- 管理员和公开分组支持(公开权限)
- 权限管理(创建/删除权限、允许/拒绝分组、公开权限、权限检查)
- 分组权限
- 用户权限
- 用户和系统变量
- 登录DDoS保护
- 私人消息(用户之间)
- 错误消息和验证
- 语言和配置文件支持
- 灵活的实现
新功能
- PSR-4 兼容性,使用分支
psr4-lib
。
迁移
- 即将推出。
快速入门
让我们开始吧 :) 首先,我们将 Aauth 库加载到系统中
$this->load->library("Aauth");
很简单!
现在让我们创建两个新用户,Frodo
和 Legolas
。
$this->aauth->create_user('frodo@example.com','frodopass','FrodoBaggins'); $this->aauth->create_user('legolas@example.com','legolaspass','Legolas');
现在我们有两个用户。
好的,现在我们可以创建两个组,hobbits
和 elves
。
$this->aauth->create_group('hobbits'); $this->aauth->create_group('elves');
现在,让我们创建一个具有权限的用户,Gandalf(在我们的例子中,让我们假设他被赋予了 id
为 12)。
$this->aauth->create_user('gandalf@example.com', 'gandalfpass', 'GandalfTheGray');
好的,现在我们有两个组和三个用户。
让我们创建两个权限 walk_unseen
和 immortality
$this->aauth->create_perm('walk_unseen'); $this->aauth->create_perm('immortality');
好的,现在让我们给我们的组分配权限。看起来霍比特人有能力行走无影,所以我们将这个特权分配给他们。精灵有不死之身,所以我们将这个特权分配给他们。我们将使用 allow_group()
函数分配权限。
$this->aauth->allow_group('hobbits','walk_unseen'); $this->aauth->allow_group('elves','immortality'); $this->aauth->allow_group('hobbits','immortality');
等等!霍比特人不应有 immortality
。我们需要修复这个问题,我们可以使用 deny_group()
删除权限。
$this->aauth->deny_group('hobbits','immortality');
Gandalf 也可以永远活着。
$this->aauth->allow_user(12,'immortality');
好的,现在让我们检查霍比特人是否有 immortality
。
if($this->aauth->is_group_allowed('hobbits','immortality')){ echo "Hobbits are immortal"; } else { echo "Hobbits are NOT immortal"; }
结果
Hobbits are NOT immortal
Gandalf 有能力永生吗?
if($this->aauth->is_allowed(12,'immortality')){ echo "Gandalf is immortal"; } else { echo "Gandalf is NOT immortal"; }
结果
Gandalf is immortal
因为我们实际上并不住在中土世界,所以我们不知道真正的永生。唉,我们必须删除这个权限。
$this->aauth->delete_perm('immortality');
它已经消失了。
未认证用户
那么,未认证用户怎么办?在 Aauth 中,它们是 public
分组的一部分。让我们给他们分配 travel
权限。我们假设我们已经有了一个名为 travel
的权限集。
$this->aauth->allow_group('public','travel');
管理员用户
那么管理员用户怎么办?Admin
用户和 Admin
分组的任何成员都是超级用户,可以访问一切,无需授予额外权限。
用户参数/变量
对于每个用户,变量可以作为单个键/值对定义。
$this->aauth->set_user_var("key","value");
例如,如果您想存储一个用户的电话号码。
$this->aauth->set_user_var("phone","1-507-555-1234");
要检索值,您将使用 get_user_var()
$this->aauth->get_user_var("key");
Aauth 还允许您定义系统变量。这些变量可以被系统中所有用户访问。
$this->aauth->set_system_var("key","value"); $this->aauth->get_system_var("key");
私信
好的,让我们看看私信。Frodo(id
= 3)将给Legolas(id
= 4)发送私信;
$this->aauth->send_pm(3,4,'New cloaks','These new cloaks are fantastic!')
禁止用户
Frodo 破坏了规则,现在需要被禁止进入系统。
$this->aauth->ban_user(3);
您已到达快速入门指南的末尾,但请查看详细文档 Wiki以获取更多信息。
别忘了关注 Aauth,我们一直在改进系统。您也可以贡献并帮助我。 :)