【TP5.1】唯一登录

author:咔咔

wechat:fangkangfk

 

唯一登录:

就是一个账号只能在一台设备登录

实现步骤:

1.在用户登录的时候生成唯一token,本地缓存一份,服务端缓存一份

2.使用中间件进行判断

 

 

在上一篇文章我们将所有的层都放置到了根目录的data中。

【TP5.1】唯一登录_第1张图片

 

创建OnlyLogin工具类

【TP5.1】唯一登录_第2张图片 源码:

creatToken($user_id);
        // 本地设置token
        Cookie::set('TOKEN'.$user_id,$token);
        // 服务端设置token
        Cache::set('TOKEN'.$user_id,$token);
    }

    /**
     * 生成唯一的token
     * @param $user_id 用户id
     * @return string
     */
    public function creatToken($user_id)
    {
        //时间戳
        $time = time();
        //10到1000的随机数
        $nonce = mt_rand(10,1000);
        //按照字典序排序
        $array = array($time,$nonce,'ONLY_USER_TOKEN',$user_id);
        sort($array);
        //转为字符串
        $token = implode($array);
        return sha1($token);
    }

    /**
     * 清除用户登录的信息
     */
    public function clear()
    {

    }
}


 

创建门面类进行静态代理:

【TP5.1】唯一登录_第3张图片 

配置门面类:

【TP5.1】唯一登录_第4张图片 

创建中间键:

【TP5.1】唯一登录_第5张图片

中间键配置:

【TP5.1】唯一登录_第6张图片 

日志打印:

【TP5.1】唯一登录_第7张图片 

你可能感兴趣的:(thinkPHP)