帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
显示全部楼层
21
帖子
0
勋章
155
Y币

[插件使用] ajAuth(极光认证)demo分享

[复制链接]
发表于 2019-11-26 17:38:50
ajAuth 本模块封装了极光认证SDK,用于进行一键登录。注:依赖于ajpush模块,需要与ajpush模块最新版本1.1.1及以上一起使用。

运行图.PNG

前端示例代码:
  1.     <!DOCTYPE HTML>
  2.     <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <meta name="viewport" content="maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, initial-scale=1.0, width=device-width"/>
  6.         <meta name="format-detection" content="telephone=no, email=no, date=no, address=no">
  7.         <title>WinA</title>
  8.         <link rel="stylesheet" type="text/css" href="css/api.css" />
  9.         <link rel="stylesheet" type="text/css" href="css/box.css" />
  10.         <script type="text/javascript" src="script/public.js"></script>
  11.         <style>
  12.                 p{
  13.                         color:#999;
  14.                         padding:5px;
  15.                 }
  16.                 .clickbtn{
  17.                         width:100%;
  18.                 }
  19.                
  20.                 #main{
  21.                         padding-left:50px;
  22.                 }
  23.         </style>
  24.             <script type="text/javascript">
  25.                
  26.                     var ajAuth = null;
  27.                     apiready = function(){
  28.                         ajAuth = api.require('ajAuth');
  29.                 }
  30.                
  31.                     function init(){
  32.                             var param = {
  33.                                     appKey:"yourkey",
  34.                                     phoneNum:{color: '#111000'},
  35.                             loginTitle:{title: "本机号码登录",color: "#000222",bgColor: "#ff0000"},
  36.                             oneKeylogin:{title: "一键登录",color: "#ffffff"},
  37.                             appPrivacy:{title: "xx服务协议",url: "http://www**.**/agreement.html",color:"#21ba86"}
  38.                     };
  39.                     ajAuth.init(param, function(ret, err){
  40.                             console.log(JSON.stringify(ret));
  41.                             document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
  42.                     });
  43.                     }
  44.                   
  45.                     function loginAuth(){
  46.                     ajAuth.loginAuth(function(ret, err){
  47.                             console.log(JSON.stringify(ret));
  48.                             document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
  49.                     });
  50.                     }
  51.                   
  52.                     function getToken(){
  53.                     ajAuth.getToken(function(ret, err){
  54.                             console.log(JSON.stringify(ret));
  55.                             document.getElementById('msg').innerHTML=JSON.stringify(ret)+'<br>'+document.getElementById('msg').innerHTML
  56.                     });
  57.                     }
  58.                   
  59.                   

  60.             </script>
  61.     </head>
  62.     <body>
  63.         <div id="wrap">
  64.             <div id="main">
  65.                   
  66.                     <br>
  67.                             <div class='itemtitle'>1、弹出对话框</div><br>
  68.                                     <div class="clickbtn" tapmode="active" onclick="init()" >init</div> <br>
  69.                                     <div class="clickbtn" tapmode="active" onclick="loginAuth()" >loginAuth</div> <br>
  70.                                     <div class="clickbtn" tapmode="active" onclick="getToken()" >getToken</div> <br>
  71.                             <div id=msg ></div>        
  72.                     </div>
  73.             </div>
  74.     </body>
  75.     </html>
复制代码


后端代码,php示例:
  1. <?php  
  2.        $prefix = '-----BEGIN RSA PRIVATE KEY-----';
  3.        $suffix = '-----END RSA PRIVATE KEY-----';
  4.        $result = '';
  5.        $prikey = "your private key";//秘钥对的私钥,公钥放在了极光后台。

  6.        $key = $prefix . "\n" . $prikey . "\n" . $suffix;
  7.       
  8.        function httpRequest($url,$data = null,$arr_header = null){
  9.             $curl = curl_init();
  10.             curl_setopt($curl, CURLOPT_URL, $url);
  11.             curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  12.             curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  13.             if (!empty($data)){
  14.                 curl_setopt($curl, CURLOPT_POST, 1);
  15.                 curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  16.             }
  17.             if(!empty($arr_header)){
  18.                 curl_setopt($curl, CURLOPT_HTTPHEADER, $arr_header);
  19.             }
  20.             curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  21.             $output = curl_exec($curl);
  22.             // echo curl_getinfo($curl);
  23.             curl_close($curl);
  24.             unset($curl);
  25.             echo 'output='.$output;
  26.             return json_decode($output,true);
  27.         }
  28.         $appKey="your appkey";//极光后台得到
  29.         $Secret="your master secret";//极光后台得到
  30.         $url = "https://api.verification**.**/v1/web/loginTokenVerify";
  31.         $header[] = "Content-Type:application/json";
  32.         $header[] = "Authorization: Basic ".base64_encode($appKey.":".$Secret); //添加头,在appKey和Secret处填写对应账号密码
  33.         
  34.         //获取手机号码
  35.         
  36.         $data['loginToken'] = "au33H5QRZfiDET8e2_3-zV8nwQHJ8Qm2q-wvqZQRTRE6ZZmIZIRXzYvuhZiR8VJCtrOoQyhtqKvRfn8Wv7KXwVvswiXCDD-AWbo3Yv1ZVKF_EhqveAOmvkzMAnUEhpu8pB-3RMr3tVLcJThJ6P9QaIjIspzitz8o196SWP-GCRc=";//这个从App端传来,可以通过post传递过来,自行替换
  37.         getPhone($data,$header,$key);
  38.         
  39.         
  40.         /*认证手机号码和本机是否一致
  41.         $data['token'] = "evSzYbbJPA5CNAZbT4hDPaPoSf8MtimAeDgy8dda-AGh7q80nnw6g6BbfkgFRTDpwq7IMpgw9ZgpfcdCZKyuO-4UooH0QCa4VMrAhr3oBvGgFquBY3a6LLa1KhBA3EiZIGCosYG8ZJwjoynVDEaqvQ==";
  42.         $data['phone']='13049300000';
  43.         $data['exID']='123456';
  44.         
  45.         tokenVerify($data,$header);
  46.         */
  47.         
  48.         //获取号码
  49.         function getPhone($data ,$header,$key){
  50.             $url = "https://api.verification**.**/v1/web/loginTokenVerify";
  51.             $res = httpRequest($url,json_encode($data), $header);
  52.             $encrypted=$res['phone'];
  53.             $r = openssl_private_decrypt(base64_decode($encrypted), $result, openssl_pkey_get_private($key));
  54.             echo "\n电话号码是:".$result . "\n";
  55.         }
  56.         
  57.         //认证手机号码和本机是否一致*/
  58.         function tokenVerify($data,$header){
  59.             $url = "https://api.verification**.**/v1/web/verify";
  60.             $res = httpRequest($url,json_encode($data), $header);
  61.             var_dump($res);
  62.         }
  63.     ?>
复制代码
如有问题,欢迎留言讨论,谢谢支持。

9
帖子
0
勋章
5634
Y币
nice
50
帖子
2
勋章
1327
Y币
感谢分享
22
帖子
1
勋章
1万+
Y币
感谢分享~
5
帖子
0
勋章
43
Y币
作者个老坑壁,你看看你的说明文档里面那段代码,多了个逗号,害我看一天
5
帖子
0
勋章
43
Y币
大佬看看这是什么错误呀,我初始化后调用authLogin无效
https://community.apicloud.com/bbs/thread-150007-1-1.html
5
帖子
0
勋章
43
Y币
仔细看你官方文档上那个列子调用的方法是authLogin而这个案例是loginAuth,真是坑,没想到官方的案例代码居然是错的
5
帖子
0
勋章
43
Y币
还我299,模块文档上方法居然是错的
5
帖子
0
勋章
43
Y币
兄弟,你那文档能不能搞完全一点,比如code返回都代表啥意思,啥时候是取消授权,啥时候是授权出错啥的
21
帖子
0
勋章
155
Y币
本帖最后由 神器的小土匪 于 2019-12-19 11:36 编辑

code对照可以参考激光文档,抱歉这是一个失误,文档我已经发给官方了,后面会更新上去
123下一页
您需要登录后才可以回帖 登录

本版积分规则