tinyapps / tinyusermanager
易于使用的PHP用户管理库
v1.0.3
2021-12-16 12:39 UTC
Requires
- php: ^7.4 || ^8.0
- ext-pdo_mysql: >=7.4
- phpmailer/phpmailer: ^6.5
This package is auto-updated.
Last update: 2024-09-16 18:45:21 UTC
README
易于使用的PHP用户管理库
设置
- 使用composer安装:
composer require tinyapps/tinyusermanager
- 设置数据库连接。例如,您可以创建一个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' );
- 使用
TinyUserManager\Setup::createTables();
设置数据库表 - (可选)通过添加额外的字段/列来自定义用户表
代码示例
请注意,在使用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);