hotworks/user-validation

用户验证类

v1.05 2021-03-31 17:41 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:31 UTC


README

作者: Rui Cunha
邮箱: r.cunha@datagen.eu

关于本项目

此类旨在提供一套完整的资源,用于处理

  • 新用户的注册和验证
  • 现有用户的登录
  • 重置忘记的密码 它具有以下功能:
  • 创建所需表结构的方法
  • 密码散列
  • 令牌安全验证
  • 将捆绑的表单包含到您的HTML代码中的方法
如何设置

如果您不使用composer,请包含文件validation.php。如果您使用composer,只需输入

composer require hotworks/user-validation
  1. 将四个表单复制到您选择的任何位置,您稍后需要提供它们的路径。
  2. 在您的数据库中创建用户表。在类中有一个用于此目的的方法
    $validation=new UserValidation();
    $validation->databaseConnectionRW = $myPdoConnectionObject ;
    $validation->createUserDatabase();
    
如何显示表单

该类有一个属性,用于存储每个表单的路径

public string $pathToValidationForm;
public string $pathToForgotPasswordForm;
public string $pathToRegistrationForm;
public string $pathToPasswordResetForm;

它还有一个方法,返回每个表单的HTML标记

public function getValidationForm(){...};
public function getForgotPasswordForm(){...};
public function getRegistrationForm(){...};
public function getResetPasswordForm(){...};

要访问html,请提供路径并调用该方法

$validation=new UserValidation();
$validation->pathToValidationForm = "/path/to/my/validation/form";
$form=$validation-> getValidationForm();
echo $form;
如何处理提交的数据

当表单提交时,数据会被发送到服务器。

创建新用户

$validation=new UserValidation();
$validation->email = $_POST['email'];
$validation->password = $_POST['password'];
$validation->passwordConfirmation = $_POST['passwordConfirmation'];
$result = $validation->createNewUser();
/*
If the user is created, $result will contain a key and a token. You need to build a URL with them and email it to your user, so that he can validate his new account.
*/

触发新账户验证

$validation=new UserValidation();
$validation->email = $_GET['email'];
$validation->validationKey = $_GET['key'];
$validation->validationToken = $_GET['token'];
$result=$validation->activateNewAccount();

登录现有用户

$validation=new UserValidation();
$validation->email = $_POST['email'];
$validation->password = $_POST['password'];
$result = $validation->validateLoginData();

访问密码重置请求表单

此表单有一个细节:您需要通过'email'属性提供电子邮件。表单中生成的密钥和令牌将取决于此。

$validation=new UserValidation();
$validation->email = $_GET['emailForgotPassword'];
$validation->pathToPasswordResetForm = "/path/to/my/password/reset/form";
form = $validation->getResetPasswordForm();
echo $form;
/*
This form will contain hidden key and token that will be posted as well.
*/

处理密码重置请求表单数据

$validation=new UserValidation();
$validation->email = $_POST['emailResetPassword'];
$validation->password = $_POST['password'];
$validation->passwordConfirmation = $_POST['passwordConfirmation'];
$validation->validationKey = $_POST['validationKey'];
$validation->validationToken = $_POST['validationToken'];
$result=$validation->validateForgotPasswordData();
/*
If everything is ok , the password will be updated
*/