tlucas/liteauth

该包已被废弃,不再维护。未建议替代包。

v0.1.2 2018-01-12 11:26 UTC

This package is not auto-updated.

Last update: 2022-04-30 15:22:16 UTC


README

PHP的轻量级身份验证库,使用SQLite作为数据库后端

安装

composer require tlucas/liteauth

在您希望使用它的项目文件(例如project.php)中,请确保您有

require_once('vendor/autoload.php');

然后使用以下方式初始化身份验证对象

$auth = new liteAuth\liteAuth('path/to/my/auth_database.db');

(当然,您可以调用对象任何名字,但在这个readme的其余部分,我们将假设您将其称为$auth

基本使用

创建用户

在登录到liteAuth之前,您必须首先创建一个用户。

这可以通过以下方式完成

$auth->newUser($user, $pass, $email, $fname, $sname, $admin);

仅需要$user$pass参数,其余的都是可选的。

例如

$auth->newUser('John', 'superstrongpassword');

现在数据库中有一个名为John的用户,密码为superstrongpassword

(如果newUser()成功,它将返回新用户的id,否则,它将返回False

(其他字段应该很容易理解,可能除了$admin。这是一个简单的True/False字段,在liteAuth中没有特殊含义,因此您可以随意使用它!)

从表单

还包括一个辅助方法registerFromPost(),以便可以轻松创建注册表单。

将其放置在表单的目标位置,它将查找相关的表单变量以注册新用户。

例如,您可能有一个包含以下内容的文件register.php

$auth->registerFromPost();

还有一个文件signup.html

<form action="register.php" method="post">
<input type="text" name="user" placeholder="Username"><br>
<input type="text" name="fname" placeholder="First name"><br>
<input type="text" name="sname" placeholder="Surname"><br>
<input type="email" name="email" placeholder="Email Address"><br>
<input type="password" name="pass" placeholder="Password"><br>
<input type="password" name="pass2" placeholder="Password"><br>
<input type="checkbox" name="admin"> Admin?<br>
<input type="submit" value="Register">
</form>

register.php将获取signup.html中的数据并创建与输入相对应的新用户。

请注意:任何可以访问调用registerFromPost()的脚本的任何人都可以创建新用户。请确保这只能由有此权限的人访问!

一个例子可能是要求管理员用户登录

register.php:

if($auth->user->admin)
	$auth->registerFromPost();

登录

登录与创建用户非常相似,您可以使用login()方法调用

$auth->login($user, $pass);

之后,如果密码正确匹配用户,它将返回True并填充$auth->user

一旦登录,用户对象上就有以下属性

$auth->user->user 		// User's username
$auth->user->first_name 	// User's first name, if set
$auth->user->surname 		// User's surname, if set
$auth->user->email		// User's email address, if set
$auth->user->admin		// If the user is set as an admin

还有一个特殊的方法

$auth->name()

它返回用户的姓名(即“名字 姓氏”或“名字”),或者回退到用户名。

从表单

与注册一样,还有一个用于从表单登录的辅助方法

$auth->loginFromPost();

如果您将其放入例如login.php中,表单在loginform.html

<form action="login.php" method="post">
<input type="text" name="user" placeholder="Username"><br>
<input type="password" name="pass" placeholder="Password"><br>
<input type="submit" value="Login">
</form>

将传递适当的值进行登录。

修改用户

要修改现有用户,您可以编辑上述列出的任何可访问属性,例如

$auth->user->first_name = 'Stephen';

然后调用

$auth->user->save();

它将更新当前用户在数据库中的名字为 Stephen

其他方法

$auth->countUsers();

返回数据库中存在的用户数量

$auth->existUsers();

如果没有用户存在,则返回 False(这有助于允许进行“首次运行”设置程序)