简易的token验证机制

大概的原理是:登录插入表中token信息,每次操作更改token表中的时间,判断失效是根据表中时间判断。下面展示其中一部分代码:

    public function adminCheck($userId, $token)
    {
        if (empty($userId) || empty($token))
        {
            return new Result(false, false, '没有权限');
        }
        // 检验token
        $checkRes = $this->checkToken($userId, $token);
        if (!$checkRes->Success)
        {
            //清除网站登录的一些信息(代码就不用放出来了)
            $this->clearAdminSessions();
            return new Result(false, false, $checkRes->Message);
        }
        return new Result(true, true, '');
    }

    private function checkToken($userId, $token)
    {
        if (empty($token) || empty($userId))
        {
            return new Result(false, false, 'token失效!');
        }
        $data = ['user_id' => $userId, 'token' => $token];
        //数据库获取token方法我判断的是add_time距离当前时间要小于1小时(token时效设置的1小时)
        $res = $this->DB->getTokenByCondition($data);
        if (empty($res))
        {
            return new Result(false, false, 'token失效!');
        }
        $data['add_time'] = 'NOW()';
        $res = $this->DB->updateToken($data);
        if (!$res)
        {
            return new Result(false, false, '修改token时间失败!');
        }
        return new Result(true, true, "修改token时间成功");
    }
赞(1) 打赏
转载请注明出处:猿客栈 » 简易的token验证机制
分享到:

评论 抢沙发

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏