apex / armor
用户和会话管理
2.0.7
2023-10-20 08:29 UTC
Requires
- php: >=8.1
- ext-redis: *
- apex/container: >=2.0
- apex/db: ^2.1
- apex/mercury: ^2.0
- apex/migrations: ^2.0
- brick/phonenumber: ^0.4
- donatj/phpuseragentparser: ^1.4
- maxmind-db/reader: ^1.11
- nyholm/psr7: ^1.4
- nyholm/psr7-server: ^1.0
- symfony/string: ^6.0
Requires (Dev)
- apex/signer: ^2.0
- phpunit/phpunit: ^9.5
README
设计用于为自定义用户管理系统开发提供一个坚实的基础,并提供了高度可配置的基础功能,包括收集和管理基本用户信息(用户名、密码、电子邮件、电话、地理定位数据等)、电子邮件/电话验证、认证会话、2FA电子邮件/SMS请求、用户隔离的AES256位加密等。这并不是一个本身就是一个用户管理系统,而是旨在通过扩展提供一个基础。它支持
- 使用单个八个方法适配器接口和模板/视图轻松实现。
- 轻松存储和管理用户名、密码、电子邮件、电话号码和基本注册信息(创建日期、地理定位数据等)。
- 支持多个用户组,提供对可能存在于后端应用程序中的不同用户组的集中管理(例如,管理员、客户、具有API访问权限的开发人员、支持人员等)。
- 高度可配置,支持多种策略,每种策略由21个不同的设置组成,允许数百种不同的配置。
- 电子邮件地址和电话验证,内置对Vonage / Nexmo的支持,用于发送短信。
- 只需一行代码即可确保任何请求/代码背后的双因素电子邮件/SMS认证。
- 为每个用户自动生成4096位RSA密钥对,允许进行基于用户的AES256加密,包括多收件人加密。
- 用户设备管理,包括“记住我”功能和移动应用程序/Firebase消息。
- 可选的基于用户的IP限制。
- 历史活动日志显示对用户账户采取的所有操作。
- 每个用户的完整登录和会话历史。
- 与mySQL、PostgreSQL和SQLite进行了全面测试。
扩展和演示
提供不同认证方案功能的几个扩展可用
- PGP - https://github.com/apexpl/armor-pgp/
- API密钥 - https://github.com/apexpl/armor-apikeys/
- x509证书 - https://github.com/apexpl/armor-x509/
以下示例使用Syrus模板引擎:
安装
使用Composer安装:
composer require apex/armor
请参阅下面的实施指南。
目录
- 实施指南
- Armor类
- 用户配置文件(创建、加载、删除用户)
- 验证用户
- 登录和认证会话
- 双因素请求
- AES加密
基本用法
use Apex\Armor\Armor; // Create user $armor = new Armor(); $user = $armor->createUser('', 'password12345', 'jsmith', 'jsmith@domain.com', '14165551234'); $uuid = $user->getUuid(); // Get user by UUID $user = $armor->getUuid($uuid); // Update e-mail address $user->updateEmail('new@domain.com'); // Check if request is authenticated session if (!$session = $armor->checkAuth()) { die("You are not logged in"); } // Require two factor authentication $session->requireTwoFactor(); // Code below this line will not be executed until authenticated via e-mail / phone. // Encrypt data to user's RSA key $data_id = $session->encryptData('some sensitive data'); // Decrypt data at a later date $text = $session->decryptData($data_id);
支持
如果您有任何问题、问题或反馈,请随时在ApexPl Reddit 子版块上留言,我们会提供快速而有帮助的回复。
关注Apex
未来将有很多好事发生,包括新的高质量开源包,更深入的关于实用主题的文章/教程,等等。通过加入我们网站上的邮件列表或关注Twitter上的@mdizak1来保持最新信息。