$site) { if (is_file(str_replace('{}', $site, self::SiteLoginCache))) { // 存在鉴权缓存 $ret = true; continue; } if (isset($configALL[$site]['passkey']) && $configALL[$site]['passkey'] && isset($configALL[$site]['id']) && $configALL[$site]['id']) { $user_id = $configALL[$site]['id']; $passkey = $configALL[$site]['passkey']; $curl = new Curl(); $curl->setOpt(CURLOPT_SSL_VERIFYPEER, false); $data = [ 'token' => $token, 'id' => $user_id, 'passkey'=> sha1($passkey), // 避免泄露用户passkey秘钥 'site' => $site, ]; $res = $curl->get($apiUrl, $data); p($res->response); $rs = json_decode($res->response, true); if (isset($rs['ret']) && ($rs['ret'] === 200) && isset($rs['data']['success']) && $rs['data']['success']) { self::setSiteLoginCache($site, $rs); $ret = true; } else { $msg = !empty($rs['msg']) ? $rs['msg'] : '远端服务器无响应,请稍后重试!'; $msg = !empty($rs['data']['errmsg']) ? $rs['data']['errmsg'] : $msg; echo $msg . PHP_EOL; } } else { echo $site.'合作站点参数配置不完整,请同时填写passkey和用户id。' . PHP_EOL; echo '合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/'. PHP_EOL. PHP_EOL; } } return $ret; } /** * 写鉴权成功缓存 * @desc 作用:减少对服务器请求,跳过鉴权提示信息; * @param string $site * @param array $array * @return bool|int */ private static function setSiteLoginCache($site = '', $array = []) { $json = json_encode($array, JSON_UNESCAPED_UNICODE); $myfile = str_replace('{}', $site, self::SiteLoginCache); $file_pointer = @fopen($myfile, "w"); $worldsnum = @fwrite($file_pointer, $json); @fclose($file_pointer); return $worldsnum; } }