lonnieezell/codeigniter-shield

CodeIgniter 4的认证和授权

v1.1.0 2024-06-13 08:54 UTC

README

Unit Tests Static Analysis PHP-CS-Fixer Rector Psalm Architecture Coverage Status

Shield是CodeIgniter 4的官方认证和授权框架。虽然它提供了一组在网站中常用工具的基础,但它的设计旨在灵活且易于定制。

Shield的主要目标是

  1. 必须非常灵活,并允许开发者扩展/覆盖其几乎所有部分。
  2. 它必须以安全为核心。毕竟,它是一个认证库。
  3. 提供许多认证需求,开箱即用,但易于添加更多功能。

认证方法

Shield提供两种主要方法:开箱即用的基于会话的认证和访问令牌认证。

它还提供HMAC SHA256令牌和JSON Web令牌认证。

基于会话

这是您在各个地方都能看到的典型电子邮件/用户名/密码系统。它包括安全的“记住我”功能。这可以用于标准Web应用程序,也可以用于单页应用程序。包括所有标准功能(如注册、登录、忘记密码等)的完整控制器和基本视图。

访问令牌

这些类似于GitHub使用的访问令牌,每个用户都是唯一的,并且单个用户可以有多个。这可以用于第三方用户的API认证,甚至可以用于允许访问您构建的移动应用程序。

HMAC SHA256令牌

这是对访问令牌认证的一种略微复杂的改进。HMAC的主要优势是共享密钥不包含在请求中,而是用于生成请求体的哈希签名。

JSON Web Token

JWT或JSON Web Token是一种紧凑且自包含的方式,可以安全地在各方之间传输信息作为JSON对象。它通常用于Web应用程序中的认证和授权目的。

重要功能

  • 基于会话的认证(传统ID/密码,带记住我功能)
  • 使用个人访问令牌的无状态认证
  • 可选的账户注册电子邮件验证
  • 登录后的可选基于电子邮件的二次认证
  • 用户忘记密码时使用魔法链接登录
  • 基于灵活的组访问控制(想想角色,但更灵活)
  • 用户可以获得额外的权限

有关更多信息,请参阅官方认证库

入门指南

先决条件

使用Shield需要以下条件

安装

安装是通过Composer完成的。

composer require codeigniter4/shield

有关安装和用法建议的更具体说明,请参阅文档

贡献

Shield接受并鼓励社区以任何形式的贡献。您是否能够编码、编写文档或帮助查找错误,所有贡献都是受欢迎的。有关详细信息,请参阅CONTRIBUTING.md文件。

许可

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件。

致谢

每个开源项目都依赖于其贡献者才能成功。以下用户以不同方式为Shield做出了贡献:

Contributors

使用contrib.rocks制作。

以下文章/网站对塑造本库中的安全和最佳实践起到了根本性的作用,不分先后: