极光手机号码一键登录(web端全流程代码)

html部分

<a href="javascript:void (0)" onclick="oneBtnLogin()" class="one-fast-login" style="font-weight: 700;display: none">手机号码一键登录</a>

引入js

     <script type="text/javascript" src="https://jverification.jiguang.cn/scripts/jverification-web.4.0.0.min.js"></script>
        <!--<script type="text/javascript" src="https://jverification.jiguang.cn/scripts/jverification-web.min.js"></script>-->
        <!-- 如需支持联通一键登录,请单独引入 h5auth1.min.js-->
        <script type="text/javascript" src="https://opencloud.wostore.cn/h5netauth/h5login/singleton/h5auth1.min.js"></script>
        <!-- 移动一键登录必须接入 crypto-js-->
        <script type="text/javascript" src="https://jverification.jiguang.cn/scripts/util/crypto-js.js"></script>

js部分

复制代码
var isVerifyNow = false;
var isVerifySuccess = false;
var verifyEnable = false;
var operaterVerify = '';
window.JVerificationInterface.init({
    appkey: "5f9540f***********e", // 极光官网中创建应用后分配的 appkey,必填
    debugMode: true, // 设置是否开启 debug 模式。true 则会打印更多的日志信息。设置 false 则只会输出 w、e 级别的日志。
    success: function (data) {
        //TODO 初始化成功回调
        console.log(data)
        // $('#msg').html(JSON.stringify(data))
        isVerifySuccess = window.JVerificationInterface.isInitSuccess();
        console.log('isVerifySuccess:' + isVerifySuccess)
        verifyEnable = window.JVerificationInterface.checkVerifyEnable();
        console.log("verifyEnable:" + verifyEnable);
        if (!verifyEnable) {
            console.log("当前网络环境不支持认证");
            return false;
        }
        //设置登录UI界面
        window.JVerificationInterface.setCustomUIWithConfig({
            logo: "http://www.*****w.com/img/logo96.png",
            appName: "应用名称"
        })
        getverifytoken()
    },
    fail: function (err) {
        //TODO 初始化失败回调
        console.log(err)
    }
});

function showBtnLogin() {
    $('.one-fast-login').show();
}
function oneBtnLogin() {
    if(isVerifyNow){
        console.log("正在获取...");
        return false;
    }
    if (!isVerifySuccess) {
        console.log("正在初始化,稍后再试...");
        popToast('正在初始化,稍后再试...')
        return false;
    }
    if (!verifyEnable) {
        console.log("当前网络环境不支持认证,请开启数据网络+关闭WIFI");
        popToast('请开启数据网络')
        return false;
    }
    if(operaterVerify==''){
        // console.log("当前网络环境不支持认证,请开启数据网络+关闭WIFI");
        popToast('稍后再试')
        return false;
    }
    popToast('正在获取本机号码...',60)
    isVerifyNow=true;
    window.JVerificationInterface.loginAuth({
        operater: operaterVerify,
        type: "full",//dialog
        success: function (data) {
            //TODO 一键登录获取 token 成功回调
            isVerifyNow=false;
            if(data.code==0){
                popToast('正在解析本机号码...',10);
                operaterVerify = data.operater;
                var tokenLogin = data.content;                
          tokenToGetMobile(tokenLogin,operaterVerify) }
else{ popToast(data.message); } }, fail: function (data) { //TODO 一键登录获取 token 失败回调 isVerifyNow=false; var emsg=data.content var emsgstr=emsg[operaterVerify]; var emsgarr=emsgstr.split('|') popToast(data.code+':'+emsgarr[1]) } }) } //请求后台解析获取手机号 function tokenToGetMobile(token,exid) { var anlysurl='http://www.*******w.com/api.php?a=getMobileNum'; $.post(anlysurl,{loginToken:token,exid:exid,mod:'h5'}, function(data,status){ if(status=='success'){ if(data.code==200){ var anyphone=data.data.mobile; var anytoken=data.data.token; popToast('正在登陆...',12) tokenMobileToLogin(anyphone,anytoken,exid) }else{ popToast(data.data) } }else{ console.log('请求解析服务器失败') popToast('请求解析服务器失败') } } ); } //手机号验证登陆 function tokenMobileToLogin(phone,token,exid) { var loginsurl='http://www.******w.com/register.php?action=fastlogin'; $.post(loginsurl, { token:token, exid:exid, mobile:phone }, function(data,status){ if(status=='success'){ if(data.code==200){ popToast('登陆成功') succJumpForward() }else{ popToast(data.data) } }else{ console.log('请求登录失败') popToast('请求登录服务器失败') } } ); } //一键登陆不需调用此方法 function getverifytoken() { if (!isVerifySuccess) { console.log("正在初始化,稍后再试..."); return false; } if (!verifyEnable) { console.log("当前网络环境不支持认证,请开启数据网络+关闭WIFI"); return false; } window.JVerificationInterface.getToken({ fail: function(data) { // $('#limss').html(JSON.stringify(data)) console.error("JVerificationInterface getToken fail:"+JSON.stringify(data)) }, success: function(data) { // $('#limss').html(JSON.stringify(data)) operaterVerify = data.operater; showBtnLogin(); // var token = data.content; console.log("JVerificationInterface getToken success:"+token) } }) /*window.JVerificationInterface.getToken({ operater: operaterVerify, success: function (data) { //TODO 获取token成功回调 $('#limss').html(JSON.stringify(data)) operaterVerify = data.operater; var token = data.content; console.log(operater, token); }, fail: function (data) { //TODO 获取token失败回调 $('#limss').html(JSON.stringify(data)) console.log('gettoken fail', data) } })*/ }
复制代码

 

posted @   麻大哈  阅读(365)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示