<?php
/**
 * Created by PhpStorm.
 * User: liupei
 * Date: 2018/1/30
 * Time: 14:34
 */

namespace app\login\model;
use think\Model;
class Token extends Model
{



	/**
	 * 检测token是否合法
	 * @param $token string 用户token
	 * @return bool
	 */
	public function check($token)
	{
		$info = cache('token_'.$token);

		if ($info === false) {
			$this->errCode = 10003;
            $this->error = '没有token';
			return false;
		}
		return $info;
	}

    /**
     * 生成token并绑定数据,2小时内重新请求自动续期
     * @param $uid      binint 用户uid
     * @param $bindInfo string 要绑定的数据
     * @param $client   string 客户端标识phone,pc目前只支持2 种
     * @return bool|string
     */
    public function createToken($uid)
    {


        if (empty($uid)) {
            $this->error = '绑定uid的数据不能为空';
            $this->errCode = 1001;
            return false;
        }

        $token = md5(create_unique());

        $expireSecond = config('token_expire_second');
        // 清除token
        $this->removeToken($uid);

        // 设置新的token
        $rs = cache('token_'.$token, $expireSecond);
        if ($rs) {
            // 设置我的新缓存记录
            $record = cache('token_'.$uid);
            $record = json_decode($record, true);
            is_array($record) || $record = [];
            $record[] = ['token' =>$token];
            cache('token_'.$uid, json_encode($record), 0);
            return $token;
        } else {
            $this->errCode = 10000;
            $this->error = 'token写入失败';
            return false;
        }
    }
}