lonnieezell / codeigniter-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:21 UTC
README
Shield是CodeIgniter 4的官方认证和授权框架。虽然它提供了一组在网站中常用工具的基础,但它的设计旨在灵活且易于定制。
Shield的主要目标是
- 必须非常灵活,并允许开发者扩展/覆盖其几乎所有部分。
- 它必须以安全为核心。毕竟,它是一个认证库。
- 提供许多认证需求,开箱即用,但易于添加更多功能。
认证方法
Shield提供两种主要方法:开箱即用的基于会话的认证和访问令牌认证。
它还提供HMAC SHA256令牌和JSON Web令牌认证。
基于会话
这是您在各个地方都能看到的典型电子邮件/用户名/密码系统。它包括安全的“记住我”功能。这可以用于标准Web应用程序,也可以用于单页应用程序。包括所有标准功能(如注册、登录、忘记密码等)的完整控制器和基本视图。
访问令牌
这些类似于GitHub使用的访问令牌,每个用户都是唯一的,并且单个用户可以有多个。这可以用于第三方用户的API认证,甚至可以用于允许访问您构建的移动应用程序。
HMAC SHA256令牌
这是对访问令牌认证的一种略微复杂的改进。HMAC的主要优势是共享密钥不包含在请求中,而是用于生成请求体的哈希签名。
JSON Web Token
JWT或JSON Web Token是一种紧凑且自包含的方式,可以安全地在各方之间传输信息作为JSON对象。它通常用于Web应用程序中的认证和授权目的。
重要功能
- 基于会话的认证(传统ID/密码,带记住我功能)
- 使用个人访问令牌的无状态认证
- 可选的账户注册电子邮件验证
- 登录后的可选基于电子邮件的二次认证
- 用户忘记密码时使用魔法链接登录
- 基于灵活的组访问控制(想想角色,但更灵活)
- 用户可以获得额外的权限
有关更多信息,请参阅官方认证库。
入门指南
先决条件
使用Shield需要以下条件
- 基于CodeIgniter 4.3.5+的项目CodeIgniter 4.3.5+
- 用于包管理的Composer
- PHP 7.4.3+
安装
安装是通过Composer完成的。
composer require codeigniter4/shield
有关安装和用法建议的更具体说明,请参阅文档。
贡献
Shield接受并鼓励社区以任何形式的贡献。您是否能够编码、编写文档或帮助查找错误,所有贡献都是受欢迎的。有关详细信息,请参阅CONTRIBUTING.md文件。
许可
本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件。
致谢
每个开源项目都依赖于其贡献者才能成功。以下用户以不同方式为Shield做出了贡献:
使用contrib.rocks制作。
以下文章/网站对塑造本库中的安全和最佳实践起到了根本性的作用,不分先后: