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;
}
本文介绍如何在安卓和iOS项目中集成极光SDK来获取SIM卡信息,并通过服务端验证login_token的过程。包括客户端获取login_token并传递给服务端,服务端使用极光API验证token的有效性。
808

被折叠的 条评论
为什么被折叠?



