noraziz/ci4-aauth

Aauth 是 CodeIgniter 4.x 的用户授权库,原始版本 https://github.com/emreakay/CodeIgniter-Aauth

v0.1 2023-03-30 10:32 UTC

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");

很简单!

现在让我们创建两个新用户,FrodoLegolas

$this->aauth->create_user('frodo@example.com','frodopass','FrodoBaggins');
$this->aauth->create_user('legolas@example.com','legolaspass','Legolas');

现在我们有两个用户。

好的,现在我们可以创建两个组,hobbitselves

$this->aauth->create_group('hobbits');
$this->aauth->create_group('elves');

现在,让我们创建一个具有权限的用户,Gandalf(在我们的例子中,让我们假设他被赋予了 id 为 12)。

$this->aauth->create_user('gandalf@example.com', 'gandalfpass', 'GandalfTheGray');

好的,现在我们有两个组和三个用户。

让我们创建两个权限 walk_unseenimmortality

$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,我们一直在改进系统。您也可以贡献并帮助我。 :)