1:首先是由安卓端 或者ios 在项目中集成极光相关关sdk ,由他们获取sim 卡信息,调取极光接口(极光文档)
换取 login_token 信息传给服务端
2:服务端接收相关值,调取极光相关接口(极光文档),解析login_toekn 。解析成功即可根据对应项目需求逻辑 进行接入。
解析失败,返回对应极光 错误信息
此处需要注意鉴权相关 下方 是我的代码相关
public function getR(Request $request) { $data['loginToken']=$request->input('loginToken'); $data['exID']=$request->input('exID',8000); $code = $request->input('code'); $source = $request->input('source'); $registration_id = $request->input('registration_id'); $device_model = $request->input('device_model'); if(empty( $data['loginToken'])) return parent::_jsonMsg(4001, Config::get('code.4001')); $data1 =str_replace(" ","+",json_encode($data)) ; $url = 'https://api.verification.jpush.cn/v1/web/loginTokenVerify'; $res = $this->postCurl($url,$data1); //此处是关于第三方的post请求 Log::info(['极光验证'=>$res]); if($res['code'] != 8000){ return parent::_jsonMsg(11056, Config::get('code.11056')); } $data2= RsaDePushCode($res['phone']); // 此处是ios端 进行了rsa加密,所以服务端要用对应私钥进行解密手机号 if(!$data2) return false; $request->offsetSet('ub_cellphone', $data2); return $this->codeLogin($request); //此处是调用了登出注册接口 处理相关业务逻辑 }
public function postCurl($url,$data) { // $appKey = '自己的appkey'; // $masterSecret = '自己masterSecret'; // $base = base64_encode("{$appKey}:{$masterSecret}"); $base=" 这里是经过base64_encode 加密过得 appkey和 对应masterSecret"; $add = "Authorization: Basic " . $base; $headerArray =array("Content-type:application/json",$add); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); $result = json_decode($output,true); return $result; }