novocod / php-autheon
一个强大且易于集成的PHP登录和注册系统。
Requires
- php: >=7.4
README
PHP-Autheon
一个灵活且安全的PHP身份验证/注册系统,易于集成且无依赖。
目录
为什么选择PHP-Autheon?
- 易用性:PHP-Autheon只需要通过单个
config.php
文件进行最少设置,大约10分钟内,你就可以将完整的身份验证功能集成到现有的或新的PHP项目中。 - 灵活和可定制:通过可适应的字段验证(例如字符串、整数、浮点数、布尔值、电子邮件、文件上传和自定义错误消息)、数据库映射、电子邮件配置等来定制您的注册系统以满足特定需求。这种灵活性允许您无需大量编码即可根据各种用例调整系统行为。
- 零依赖:无需任何额外的库或框架,简化了集成过程。
- 安全:采用现代安全实践构建,包括密码散列、CSRF保护、安全的会话管理以及SQL绑定以防止SQL注入攻击。
先决条件
- PHP 8.0及以上版本
- MySQL
安装
直接下载
- 前往GitHub存储库并点击代码按钮。
- 选择下载ZIP。
- 下载后,解压文件夹。
- 将解压的文件夹移动到XAMPP的
htdocs
目录或WAMP的www
目录。
使用Composer
- 从getcomposer.org下载并安装Composer。
- 打开您的终端或命令提示符。
- 导航到XAMPP的
htdocs
目录或WAMP的www
目录中的所需目录。 - 运行以下命令
composer require novocod/php-autheon
这将下载并安装PHP-Autheon到指定的目录。
配置
PHP-Autheon通过config.php
文件进行配置。以下是每个配置选项的分解
数据库配置
用户表配置
电子邮件配置
注意:如果配置中的smtp_password
留空(''
),PHP-Autheon将不会发送激活电子邮件或处理忘记密码的过程。请确保所有电子邮件配置设置都正确设置,以启用这些功能。
安全配置
表单字段映射
PHP-Autheon允许动态地将表单字段映射到数据库列。这不仅确保了正确的数据存储,还简化了集成,并通过隐藏真实列名提供额外的安全层,从而增强了安全性。**示例**:
const FIELD_VALIDATION =
[
'first_name' =>
[
'column' => 'c7vU_fname',
],
'last_name' =>
[
'column' => 'c7vU_lname',
],
]
在这里,first_name 表单字段映射到数据库中的c7vU_fname 列,而last_name 表单字段映射到列中的c7vU_lname。
字段验证
PHP-Autheon中的字段验证旨在确保数据完整性和安全性。它提供全面的服务器端验证,对用户输入实施规则和约束,帮助防止无效或恶意数据损害您的应用程序。系统支持各种验证选项,包括数据类型、必填字段以及最大和最小长度或值等约束。
集成
将PHP-Autheon集成到您的PHP项目中非常简单。您只需通过传递$requestData
来利用提供的函数,其中包含了从您的表单中通过$_POST提交的所有值,PHP-Autheon将自动管理所有其他操作:数据的验证,包括与数据库的交互。这简化了身份验证和用户管理的实现,让您可以专注于应用程序的其他方面,同时PHP-Autheon处理用户相关操作的复杂性。
- 包含PHP-Autheon库并实例化AuthController:
use App\Controllers\AuthController;
$authController = new AuthController();
- 根据表单提交调用适当的函数:
文件夹结构
src
├── Config
│ └── Config.php
├── Controllers
│ └── AuthController.php
├── Models
│ └── User.php
└── Utils
├── CSRFProtection.php
├── Mailer.php
├── Utils.php
└── Validator.php
PSR-4和MVC实现
PHP-Autheon使用PSR-4进行类自动加载,并遵循MVC(模型-视图-控制器)设计模式,提供清晰且易于维护的代码结构。
故障排除
- 确保数据库列已正确设置,包括主键、唯一约束、NULL/NOT NULL配置和默认值。
- 验证字段映射和验证配置。
- 对于次要字段(您不想配置的字段),确保表单字段名称与确切列名称匹配,以实现数据存储的成功。
注意
请注意,这是一个初始版本,目前还不是稳定版本。我们鼓励贡献并邀请安全专家测试和审查系统。到目前为止,以下功能是可操作的,但尚未完全测试:
- 用户注册:为新用户提供简单的注册流程。
- 用户登录:为注册用户提供安全的认证。
- 邮箱激活:通过电子邮件验证激活账户。
- 记住我:为返回用户提供持久的登录选项。
- 用户注销:为登录用户提供正确的会话终止。
- 密码恢复:通过电子邮件安全重置密码。
- 表单字段映射:动态将表单字段映射到数据库列。
- 表单验证:对表单输入进行强大的验证,以确保数据完整性。
- 会话管理:安全处理和管理用户会话。
- CSRF保护:实现CSRF令牌以防止跨站请求伪造。
演示和示例
要查看PHP-Autheon的实际应用和探索其功能,请按照以下步骤操作
-
下载仓库
- 从PHP-Autheon GitHub页面克隆或下载最新的仓库。
-
设置数据库
-
导航到下载仓库中的
example/DB
文件夹。 -
使用phpMyAdmin或MySQL命令行工具将提供的
.sql
文件导入到您的MySQL数据库中。mysql -u yourusername -p yourdatabase < example/DB/test_db.sql
-
-
配置PHP-Autheon
- 更新
src/Config
目录中的config.php
文件,以匹配您的数据库设置和其他配置。
- 更新
-
运行演示
- 导航到
example
文件夹。 - 在Web服务器环境中打开示例文件(例如,使用XAMPP、WAMP或类似的设置)。
- 导航到
-
查看截图
-
以下截图展示了PHP-Autheon的关键功能
使用示例凭证登录
- 使用以下凭证示例进行登录
- 用户名:
admin123
- 密码:
admin123
- 用户名:
- 使用以下凭证示例进行登录
注意: 示例不包括路由逻辑以保持代码简洁并专注于演示 PHP-Autheon 的核心功能。为了完整实现,您需要根据项目结构集成路由。
如需进一步了解详情或遇到任何问题,请参阅文档或联系支持。
享受探索 PHP-Autheon 的过程!
贡献
欢迎贡献!请遵循以下指南
- 分叉仓库并创建一个功能分支。
- 进行更改并提交拉取请求。
- 确保您的代码遵循 PSR 标准,并进行彻底测试。
支持我们
如果您认为 PHP-Autheon 有用并希望支持其开发,请考虑
捐款
您的贡献有助于我们维护和改进项目。捐款可通过以下方式
给我们一个星标!
如果您发现 PHP-Autheon 有帮助,请在 GitHub 上给我们一个 ⭐!您的支持帮助我们成长和改进。
感谢您的支持!
许可
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
额外文档和支持
有关进一步文档或支持,请参阅 GitHub Issues 页面或直接联系我们。