codeigniter4 / shield
CodeIgniter 4 的身份验证和授权
Requires
- php: ^7.4.3 || ^8.0
- codeigniter4/settings: ^2.1
Requires (Dev)
- codeigniter/phpstan-codeigniter: ^1.3
- codeigniter4/devkit: ^1.0
- codeigniter4/framework: >=4.3.5 <4.5.0 || ^4.5.1
- firebase/php-jwt: ^6.4
- mikey179/vfsstream: ^1.6.7
- mockery/mockery: ^1.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^9.6
- rector/rector: 1.1.0
Suggests
- ext-curl: Required to use the password validation rule via PwnedValidator class.
- ext-openssl: Required to use the JWT Authenticator.
Provides
This package is auto-updated.
Last update: 2024-09-09 10:52:20 UTC
README
Shield 是 CodeIgniter 4 的官方身份验证和授权框架。虽然它提供了一组在网站中常用工具的基本工具集,但它设计得灵活,易于自定义。
Shield 的主要目标包括
- 必须非常灵活,并允许开发者扩展/覆盖其几乎任何部分。
- 它必须在核心处具备安全性。毕竟,它是一个身份验证库。
- 提供许多开箱即用的身份验证需求,但可以轻松添加额外的功能。
身份验证方法
Shield 提供两种主要方法:开箱即用的基于会话的身份验证和访问令牌身份验证。
它还提供了基于 HMAC SHA256 的令牌和 JSON Web Token 身份验证。
基于会话的
这是你在任何地方都能看到的典型电子邮件/用户名/密码系统。它包括安全的“记住我”功能。这可以用于标准 Web 应用程序,也可以用于单页应用程序。包括所有标准功能(如注册、登录、忘记密码等)的完整控制器和基本视图。
访问令牌
这些与 GitHub 使用的访问令牌非常相似,它们对单个用户是唯一的,单个用户可以有多个。这可以用于第三方用户的 API 身份验证,甚至可以用于允许你构建的移动应用程序访问。
HMAC SHA256 令牌
这是对访问令牌身份验证的略微复杂改进。HMAC 的主要优势是共享密钥不是传递在请求中,而是用于创建请求体的哈希签名。
JSON Web Token
JWT 或 JSON Web Token 是一种紧凑且自包含的方式,可以安全地在各方之间作为 JSON 对象传输信息。它通常用于 Web 应用程序中的身份验证和授权目的。
重要功能
- 基于会话的身份验证(传统的 ID/密码和记住我功能)
- 使用个人访问令牌的无状态身份验证
- 账户注册时可选的电子邮件验证
- 登录后可选的基于电子邮件的两因素身份验证
- 用户忘记密码时使用魔法链接登录
- 基于组的灵活访问控制(类似于角色,但更灵活)
- 用户可以获得额外的权限
有关更多信息,请参阅 官方身份验证库。
入门指南
先决条件
使用 Shield 需要以下条件
- 基于 CodeIgniter 4.3.5+ 的项目
- 用于包管理的 Composer
- PHP 7.4.3+
安装
安装通过 Composer 完成。
composer require codeigniter4/shield
有关安装和用法建议的更具体说明,请参阅 文档。
贡献
Shield 接受并鼓励社区以任何形式做出贡献。无论你是否会编写代码、编写文档或帮助寻找错误,所有贡献都是受欢迎的。有关详细信息,请参阅 CONTRIBUTING.md 文件。
许可证
本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件。
致谢
每个开源项目都依赖于贡献者才能取得成功。以下用户以不同方式为Shield做出了贡献:
由contrib.rocks制作。
以下文章/网站对该库的安全性和最佳实践的形成起到了关键作用,不分先后顺序: