0, 'msg' => "hello"), JSON_UNESCAPED_UNICODE); // if (!$_POST['username']) { // echo json_encode(array('status' => 0, 'msg' => '用户名不能为空'), JSON_UNESCAPED_UNICODE); // exit; // } // if (!$_POST['password']) { // echo json_encode(array('status' => 0, 'msg' => '密码不能为空'), JSON_UNESCAPED_UNICODE); // exit; // } // $adminuserDb = D('adminuser'); // $where['name'] = $_POST['username']; // $where['del'] = '0'; // $adminInfo = $adminuserDb->where($where)->field('name,uname,pwd,qx,shop_id,photo,lasttime')->find(); // if ($adminInfo) { // if (MD5(MD5($_POST['password'])) == $adminInfo['pwd']) { // //登陆成功 // $this->shop_id = $adminInfo['shop_id']; // $data['lasttime'] = time(); // $adminuserDb->where($where)->save($data); //最后登录时间写入数据库 // //从program表拿用户头像 // $adminInfo['photo'] = json_decode($adminInfo['photo'])[0]; //反序列化 取到头像名称 // switch ($adminInfo['qx']) { // case 4: // $adminInfo['power'] = 'admin'; // break; // case 5: // $adminInfo['power'] = 'editor'; // break; // } // //删除多余信息 // unset($adminInfo['pwd']); // //创建token // $token = $this->makeToken(array('shop_id' => $this->shop_id)); // //登陆成功 返回token // echo json_encode(array('status' => 1, 'msg' => '登陆成功', 'adminInfo' => $adminInfo, 'token' => $token), JSON_UNESCAPED_UNICODE); // } else { // //密码错误 // echo json_encode(array('status' => 0, 'msg' => '登陆失败'), JSON_UNESCAPED_UNICODE); // exit; // } // } else { // //账号不存在或已注销 // echo json_encode(array('status' => 0, 'msg' => "登陆失败"), JSON_UNESCAPED_UNICODE); // exit; // } } /** * @description: 构建token * @param {array} data 要存储在 JWT 中的数据,键值对形式 ps:这里可以传exp 来覆盖默认的过期时间 * @return {*} token */ private function makeToken($data = []) { $jwtKey = C('jwtKey'); // jwt密钥 $currtime = time(); // 默认的数据 $defaultData = [ 'iat' => $currtime, // 签发时间(时间戳) 'iss' => 'jwt_admin', // 签发者 'nbf' => $currtime, // 在此时间之前不可用 (这里是2秒以内) 'exp' => strtotime('tomorrow'), //过期时间 到第二天凌晨 'jti' => md5(uniqid('JWT') . $currtime), // JWT ID:令牌的唯一标识符 ]; // 合并默认数据和传递的数据 $tokenData = array_merge($defaultData, $data); // 使用密钥和 HS256 算法对数据进行编码生成 JWT return JWT::encode($tokenData, $jwtKey, 'HS256'); } }