Laravel密码重置、账户激活等功能用的token管理器。基于Laravel Cache Facade

1.0.1 2015-10-24 23:03 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:35 UTC


README

在常见任务(如密码重置、账户激活等)中轻松实现公共token的工具。通常,当需要通过邮件发送token(例如)时,我们考虑到使用Laravel 5.x。

安装

在您的composer.json中添加

{
    "require": {
        "malahierba-lab/token": "~1.0"
    }
}

然后您需要运行composer update命令。

工作原理

token通过Laravel Cache Facade进行保存,因此您不需要在数据库中创建表(除非您使用数据库缓存作为驱动),所以...您不需要更改当前的数据库,token会自动过期,无需烦恼 :)

使用

重要:为了文档目的,在下面的示例中,我们假设您使用use Malahierba\Token\Token;将库导入到您的命名空间中。

您可以为项目中任何模型(Eloquent/Model)生成token。在下面的示例中我们使用User模型,但您可以使用您需要的任何模型。

1.- 创建Token实例

//Get a Model Instance... in this case, a User instance.
$user = User::find(1);

// Create a password reset token instance
// 'password reset' is just a example... you can use the string than you want :)
// so.. if you want a token named 'my token type' just use it as second parameter. No predefined types.
$token = new Token($user, 'password reset');

//You can define the duration, in minutes, until the token expire. Default is 60.
//This example set 15 minutes to expire the token
$token = new Token($user, 'password reset', 15);

//Also you can define the number of chars for token. Default is 48
//This example set token length in 32 chars (and use the default minutes to expire)
$token = new Token($user, 'password reset', null, 32);

//This example set 15 minutes to expire the token and token length in 32 chars
$token = new Token($user, 'password reset', 15, 32);

2.- 获取Token字符串

$token_str = $token->get();

如果没有之前的token存在(或之前的token已过期),则您将获得一个随机生成的字符串。如果之前的token存在(且尚未过期)则您将获得该token。

3.- 验证Token

您可以在用户输入token时验证token,或者当它来自url时(例如,如果您通过邮件发送包含token的链接以进行密码重置)。

if ($token->check($string))
    // code for token validated

4.- 删除Token

当您不再需要token时(例如,您的用户已在密码重置生命周期中设置了新密码)您可以删除它

$token->delete();

删除方法不会销毁token实例,只是删除旧的token字符串。如果您运行$token->get(),您将收到相同用户(和相同类型)的新token,因为实例是相同的。

许可证

本项目采用MIT许可证。有关更多信息,请阅读LICENCE文件。