malahierba-lab / token
Laravel密码重置、账户激活等功能用的token管理器。基于Laravel Cache Facade
Requires
- php: >=5.5
- laravel/framework: 5.*
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文件。