hotworks / user-validation
用户验证类
v1.05
2021-03-31 17:41 UTC
README
作者: Rui Cunha
邮箱: r.cunha@datagen.eu
关于本项目
此类旨在提供一套完整的资源,用于处理
- 新用户的注册和验证
- 现有用户的登录
- 重置忘记的密码 它具有以下功能:
- 创建所需表结构的方法
- 密码散列
- 令牌安全验证
- 将捆绑的表单包含到您的HTML代码中的方法
如何设置
如果您不使用composer,请包含文件validation.php。如果您使用composer,只需输入
composer require hotworks/user-validation
- 将四个表单复制到您选择的任何位置,您稍后需要提供它们的路径。
- 在您的数据库中创建用户表。在类中有一个用于此目的的方法
$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
*/