novocod/php-autheon

一个强大且易于集成的PHP登录和注册系统。

v1.0.0 2024-08-07 12:05 UTC

This package is auto-updated.

Last update: 2024-09-07 12:25:51 UTC


README

PHP-Autheon

一个灵活且安全的PHP身份验证/注册系统,易于集成且无依赖。

GitHub GitHub pre-release GitHub repo size GitHub code size in bytes



目录

为什么选择PHP-Autheon?

  • 易用性:PHP-Autheon只需要通过单个config.php文件进行最少设置,大约10分钟内,你就可以将完整的身份验证功能集成到现有的或新的PHP项目中。
  • 灵活和可定制:通过可适应的字段验证(例如字符串、整数、浮点数、布尔值、电子邮件、文件上传和自定义错误消息)、数据库映射、电子邮件配置等来定制您的注册系统以满足特定需求。这种灵活性允许您无需大量编码即可根据各种用例调整系统行为。
  • 零依赖:无需任何额外的库或框架,简化了集成过程。
  • 安全:采用现代安全实践构建,包括密码散列、CSRF保护、安全的会话管理以及SQL绑定以防止SQL注入攻击。

先决条件

  • PHP 8.0及以上版本
  • MySQL

安装

直接下载

  1. 前往GitHub存储库并点击代码按钮。
  2. 选择下载ZIP
  3. 下载后,解压文件夹。
  4. 将解压的文件夹移动到XAMPP的htdocs目录或WAMP的www目录。

使用Composer

  1. getcomposer.org下载并安装Composer。
  2. 打开您的终端或命令提示符。
  3. 导航到XAMPP的htdocs目录或WAMP的www目录中的所需目录。
  4. 运行以下命令
   
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处理用户相关操作的复杂性。

  1. 包含PHP-Autheon库并实例化AuthController:
use App\Controllers\AuthController;
$authController = new AuthController();
  1. 根据表单提交调用适当的函数:

文件夹结构

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的实际应用和探索其功能,请按照以下步骤操作

  1. 下载仓库

  2. 设置数据库

    • 导航到下载仓库中的example/DB文件夹。

    • 使用phpMyAdmin或MySQL命令行工具将提供的.sql文件导入到您的MySQL数据库中。

      mysql -u yourusername -p yourdatabase < example/DB/test_db.sql
  3. 配置PHP-Autheon

    • 更新src/Config目录中的config.php文件,以匹配您的数据库设置和其他配置。
  4. 运行演示

    • 导航到example文件夹。
    • 在Web服务器环境中打开示例文件(例如,使用XAMPP、WAMP或类似的设置)。
  5. 查看截图

  • 以下截图展示了PHP-Autheon的关键功能

    Login Screen 登录屏幕示例

    使用示例凭证登录

    • 使用以下凭证示例进行登录
      • 用户名: admin123
      • 密码: admin123

    注册屏幕 注册屏幕示例

    重置密码 重置密码屏幕示例

    重置密码 新密码 重置密码新密码屏幕示例

仪表板 用户仪表板示例

注意: 示例不包括路由逻辑以保持代码简洁并专注于演示 PHP-Autheon 的核心功能。为了完整实现,您需要根据项目结构集成路由。

如需进一步了解详情或遇到任何问题,请参阅文档或联系支持。

享受探索 PHP-Autheon 的过程!

贡献

欢迎贡献!请遵循以下指南

  • 分叉仓库并创建一个功能分支。
  • 进行更改并提交拉取请求。
  • 确保您的代码遵循 PSR 标准,并进行彻底测试。

支持我们

如果您认为 PHP-Autheon 有用并希望支持其开发,请考虑

捐款

您的贡献有助于我们维护和改进项目。捐款可通过以下方式

给我们一个星标!

如果您发现 PHP-Autheon 有帮助,请在 GitHub 上给我们一个 ⭐!您的支持帮助我们成长和改进。

感谢您的支持!

许可

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

额外文档和支持

有关进一步文档或支持,请参阅 GitHub Issues 页面或直接联系我们。