tinyapps/tinyusermanager

易于使用的PHP用户管理库

v1.0.3 2021-12-16 12:39 UTC

This package is auto-updated.

Last update: 2024-09-16 18:45:21 UTC


README

易于使用的PHP用户管理库

设置

  1. 使用composer安装: composer require tinyapps/tinyusermanager
  2. 设置数据库连接。例如,您可以创建一个db-config.php
<?php

return [
  'host' => '127.0.0.1',
  'db' => 'your_db',
  'user' => 'db_user',
  'password' => 'db_password'
];

并使用配置文件建立连接

$dbConfig = require __DIR__ . '/path-to/db-config.php';

TinyUserManager\Helpers\Database::conn(
  $dbConfig['host'],
  $dbConfig['db'],
  $dbConfig['user'],
  $dbConfig['password'],
  'utf8mb4'
);
  1. 使用 TinyUserManager\Setup::createTables(); 设置数据库表
  2. (可选)通过添加额外的字段/列来自定义用户表

代码示例

请注意,在使用TinyUserManager需要数据库连接的功能之前,必须在每个脚本中调用 Database::conn()。当使用会话时,还需要启动php会话(session_start())。很快将添加文档。

登录

$session = new TinyUserManager\Session();
if ($session->login('john.doe@example.com', 'opensesame')) {
  // login succeded
} else {
  // wrong credentials
}

检查用户是否已登录

if ($session->loggedIn()) {
  // user is logged in
  $user = $session->getUser();
}

注册

下面的代码片段包括一个在用户表中之前添加的自定义字段“电话”。

if ($user = TinyUserManager\UserManager::createUser('john.doe@example.com', 'opensesame', ['phone' => '+49 123 45678'])) {
  // User has been created
}

发送确认邮件

$emailConfig = new TinyUserManager\EmailConfig('no-reply@example.com', 'Example');

TinyUserManager\ConfirmationHandler::sendConfirmationEmail($user, $emailConfig, 'Please confirm your registration', '<p><a href="https://example.com/activate/%uid%/%token%">Activate account</a></p>');

可选地,如果您想使用SMTP,您可以自定义 $emailConfig

$emailConfig->useSmtp();
$emailConfig->setHost('mail.example.com');
$emailConfig->setUsername('no-reply@example.com');
$emailConfig->setPassword('your_email_password');
$emailConfig->setPort(465);
$emailConfig->setSmtpSecure('ssl');

从激活邮件激活账户

$user = TinyUserManager\UserManager::getUser($userId);
if (TinyUserManager\ConfirmationHandler::confirmUser($user, $token)) {
  // confirmed
}

更新用户详情

$user->setField('phone', '+49 123 456789');
TinyUserManager\UserManager::updateUser($user);

密码重置

发送密码重置确认邮件

TinyUserManager\PasswordResetHandler::sendConfirmationEmail(
	$user,
	$emailConfig,
	$emailSubject,
	'<a href="https://example.com/reset/?uid=%uid%&token=%token%">Reset password</a>',
);

确认密码重置令牌

$user = TinyUserManager\UserManager::getUser($userId);
if (TinyUserManager\PasswordResetHandler::confirmPasswordForgotToken($user, $token)) {
  // valid
}

设置新密码(在设置新密码之前再次确认令牌!)

TinyUserManager\PasswordResetHandler::setNewPassword($user, $newPassword);