token的验证

TP框架下的token验证


前言

现在很多项目是前后端分离的,在前端调用后端的接口时就需要身份验证。这次讨论的是TP框架下使用token验证的方式。


1.token的创建和更新

我们在登陆和注册的时候通过之后,后端会根据时间和一些用户信息加密生成一个$token字符串。

生成之后,我们将它更新到数据库中的user表中。

然后,创建缓存,以$token为名,以用户的字段信息为值,设置保持登陆的时长。

最后,我们将$token字符串传给前端。

$token = md5(uniqid() . $id . time());
$table
->where('id', $id)
->update(['token' => $token]);
$user['token'] = $token;
Cache::set($token, $user, $time);

2.调用接口时验证token

我们在登陆注册时已经在缓存中设置了token,接下来我们会在调用接口时匹配token。
token检查,一般写在Base.php的初始化方法里,作为其他控制器的父类,每次调用子类控制器的方法时都会进行token检查。

1.我们接受前端传来的token(post or cookie)
2.判断当前访问的控制器下的方法是否需要token验证
3.用传来的token寻找同名的缓存
4.寻找到,则获取其中的$user值,并且再次设置缓存,将保持登陆的时间延长。

public function _initialize() 
{
    $this->checkToken();
}
$user = Cache::get($token);
Cache::set($token, $user, $time);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值