rekkyrek/rekauth

此包的最新版本(dev-master)没有提供许可证信息。

基于令牌的开源身份验证系统

dev-master 2016-07-11 16:51 UTC

This package is not auto-updated.

Last update: 2022-01-08 04:42:36 UTC


README

PHP的开源基于令牌的身份验证系统

##下载

方法1(手动):下载zip文件并将其解压缩到您的项目中。

方法2(Composer):composer require rekkyrek/rekauth

设置

####首先,您需要为rekauth表创建一个数据库。

  1. 创建一个新的数据库以存储rekauth

create database <Database Name Here>;

  1. 然后切换到您的新数据库

use <Database Name Here>;

  1. 太好了!现在我们需要创建包含所有数据的表。在此阶段,您需要决定用户名可以有多长。

  2. 完成了吗?好的,让我们创建表!我想让您将以下内容复制并粘贴到您的数据库终端中,并编辑userid的varchar值(标记为*的地方需要编辑)。好吗?

create table users (userid varchar(*), passhash varchar(255), mail varchar(255), lastseen timestamp, registered timestamp)

  1. 现在添加一个;并按回车。现在将以下内容粘贴到控制台(并将*修改为上一个值。)

create table tokens (user varchar(*), expire timestamp, token varchar(265))

  1. 现在,再次添加一个;并按回车。完成了!太好了!(至少在数据库方面。)

####现在我们需要在PHP中设置身份验证系统。 注意:确保您的服务器至少运行PHP 5。

  1. 将rekauth文件夹复制到您的项目中。

  2. 在您的文本编辑器中打开rekauth文件夹中的config.php文件。

  3. 首先,我们需要编辑数据库设置。

$servername应该是您数据库的IP地址。 $username和$password需要是您的数据库登录凭证。 $dbname必须与我们在设置数据库时创建的相同。

  1. 现在,根据您的需求进行修改。它们的命名相当合理,所以我想您应该能理解。 注意:除非您知道自己在做什么,否则不要更改$password_encrypt_cost。

  2. 然后,就完成了!现在按照以下步骤查看如何使用rekauth。

##使用rekauth ####登录

如何实现rekauth/login? 简单,您只需有一个包含两个文本字段的表单,并将其通过 POST 发送到rekauth/login.php

######POST名称

用户名 = u

密码 = p

######示例

<form action="rekauth/login.php" method="POST">

用户名: <input name="n" type="text"/>

密码: <input name="p" type="password"/>

<input type="submit" value="登录"/>

</form>

如果登录成功,它将设置一个包含访问令牌的cookie(您可以使用此令牌来验证用户,而不是在您的应用程序中使用用户名和密码)。如果失败,它将返回在 rekauth/config.php 中创建的错误字符串。(如果您仅在应用程序中使用JS,可以在登录系统的第62行和第67行添加 'echo $token',然后使用localStorage保存令牌)

####注册

如何实现rekauth/register? 简单,您只需有一个包含两个文本字段的表单,并将其通过 POST 发送到rekauth/login.php

######POST名称

用户名 = u

密码 = p

密码确认 = pc

邮箱 = m

邮箱确认 = mc

######示例

<form action="rekauth/register.php" method="POST">

用户名: <input name="n" type="text"/>

密码: <input name="p" type="password"/>

确认密码: <input name="pc" type="password"/>

邮箱: <input name="m" type="email"/>

确认邮箱: <input name="mc" type="email"/>

<input type="submit" value="登录"/>

</form>

如果注册成功,它将把密码散列(密码散列函数)和所有其他用户详细信息保存到您的数据库中,然后重定向用户到您在 rekauth/config.php 中设置的登录页面,在那里他们可以登录以获取访问令牌。

####使用令牌

如果用户成功完成登录,他们将收到一个访问令牌(默认:存储在名为 'token' 的cookie中)。这应该用于在您的应用程序内部执行功能时验证用户,而不是使用用户名和密码。

######表名

'user':令牌分配到的用户名。

'expire':令牌将过期的时间戳。

'token':访问令牌。

######示例

$dbquery = $conn->prepare("SELECT * FROM tokens WHERE token = :token");

$dbquery->execute(array("token"=>$_COOKIE["token"]));

$result = $dbquery->fetchAll();

$myusername = strtolower($result[0]["user"]);

现在您可以使用 '$myusername' 从您的数据库中的其他表访问数据。

本软件按照“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是在合同、侵权或其他法律行为中产生的,无论这些责任是否与软件或其使用或任何其他交易有关。

© 2016 Hampus Lundqvist