|
[插件使用]
ajAuthNoPush(极光认证)demo分享
[复制链接]
本帖最后由 神器的小土匪 于 2019-11-26 17:13 编辑
ajAuthNoPush 本模块封装了极光认证SDK,,用于进行一键登录。注:不可与ajpush模块一起用会有冲突;ios上移动取号需要配置包名到资源文件中,没法动态配置,所以移动号ios上暂不支持。
前端示例代码:
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, initial-scale=1.0, width=device-width"/>
- <meta name="format-detection" content="telephone=no, email=no, date=no, address=no">
- <title>WinA</title>
- <link rel="stylesheet" type="text/css" href="css/api.css" />
- <link rel="stylesheet" type="text/css" href="css/box.css" />
- <script type="text/javascript" src="script/public.js"></script>
- <style>
- p{
- color:#999;
- padding:5px;
- }
- .clickbtn{
- width:100%;
- }
-
- #main{
- padding-left:50px;
- }
- </style>
- <script type="text/javascript">
-
- var ajAuth = null;
- apiready = function(){
- ajAuth = api.require('ajAuthNoPush');
- }
-
- function init(){
- var param = {
- appKey:"yourkey",
- phoneNum:{color: '#111000'},
- loginTitle:{title: "本机号码登录",color: "#000222",bgColor: "#ff0000"},
- oneKeylogin:{title: "一键登录",color: "#ffffff"},
- appPrivacy:{title: "xx服务协议",url: "http://www**.**/agreement.html",color:"#21ba86"}
- };
- ajAuth.init(param, function(ret, err){
- console.log(JSON.stringify(ret));
- document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
- });
- }
-
- function loginAuth(){
- ajAuth.loginAuth(function(ret, err){
- console.log(JSON.stringify(ret));
- document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
- });
- }
-
- function getToken(){
- ajAuth.getToken(function(ret, err){
- console.log(JSON.stringify(ret));
- document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
- });
- }
-
-
- </script>
- </head>
- <body>
- <div id="wrap">
- <div id="main">
-
- <br>
- <div class='itemtitle'>1、弹出对话框</div><br>
- <div class="clickbtn" tapmode="active" onclick="init()" >init</div> <br>
- <div class="clickbtn" tapmode="active" onclick="loginAuth()" >loginAuth</div> <br>
- <div class="clickbtn" tapmode="active" onclick="getToken()" >getToken</div> <br>
- <div id=msg ></div>
- </div>
- </div>
- </body>
- </html>
复制代码
后端代码我这提供了php版本的例子,示例代码:
- <?php
- $prefix = '-----BEGIN RSA PRIVATE KEY-----';
- $suffix = '-----END RSA PRIVATE KEY-----';
- $result = '';
- $prikey = "your private key";//秘钥对的私钥,公钥放在了极光后台。
- $key = $prefix . "\n" . $prikey . "\n" . $suffix;
-
- function httpRequest($url,$data = null,$arr_header = null){
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
- if (!empty($data)){
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- }
- if(!empty($arr_header)){
- curl_setopt($curl, CURLOPT_HTTPHEADER, $arr_header);
- }
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- $output = curl_exec($curl);
- // echo curl_getinfo($curl);
- curl_close($curl);
- unset($curl);
- echo 'output='.$output;
- return json_decode($output,true);
- }
- $appKey="your appkey";//极光后台得到
- $Secret="your master secret";//极光后台得到
- $url = "https://api.verification**.**/v1/web/loginTokenVerify";
- $header[] = "Content-Type:application/json";
- $header[] = "Authorization: Basic ".base64_encode($appKey.":".$Secret); //添加头,在appKey和Secret处填写对应账号密码
-
- //获取手机号码
-
- $data['loginToken'] = "au33H5QRZfiDET8e2_3-zV8nwQHJ8Qm2q-wvqZQRTRE6ZZmIZIRXzYvuhZiR8VJCtrOoQyhtqKvRfn8Wv7KXwVvswiXCDD-AWbo3Yv1ZVKF_EhqveAOmvkzMAnUEhpu8pB-3RMr3tVLcJThJ6P9QaIjIspzitz8o196SWP-GCRc=";//这个从App端传来,可以通过post传递过来,自行替换
- getPhone($data,$header,$key);
-
-
- /*认证手机号码和本机是否一致
- $data['token'] = "evSzYbbJPA5CNAZbT4hDPaPoSf8MtimAeDgy8dda-AGh7q80nnw6g6BbfkgFRTDpwq7IMpgw9ZgpfcdCZKyuO-4UooH0QCa4VMrAhr3oBvGgFquBY3a6LLa1KhBA3EiZIGCosYG8ZJwjoynVDEaqvQ==";
- $data['phone']='13049300000';
- $data['exID']='123456';
-
- tokenVerify($data,$header);
- */
-
- //获取号码
- function getPhone($data ,$header,$key){
- $url = "https://api.verification**.**/v1/web/loginTokenVerify";
- $res = httpRequest($url,json_encode($data), $header);
- $encrypted=$res['phone'];
- $r = openssl_private_decrypt(base64_decode($encrypted), $result, openssl_pkey_get_private($key));
- echo "\n电话号码是:".$result . "\n";
- }
-
- //认证手机号码和本机是否一致*/
- function tokenVerify($data,$header){
- $url = "https://api.verification**.**/v1/web/verify";
- $res = httpRequest($url,json_encode($data), $header);
- var_dump($res);
- }
- ?>
复制代码
如有问题,欢迎留言讨论,谢谢支持。
|
|