mui APP 微信登录授权_泠吢_前端开发者

一、在微信平台上申请appid、appsecret。

二、app –》 manifest.json–》SDK配置(填写申请好的appid和appsecret)

三、在登录页,点击微信登录按钮,若绑定微信,则免账号密码登录直接跳转到首页;若未绑定,则弹出未绑定微信。

// 微信授权登录对象
var aweixin=null;    // 调用plus.oauth.getServices获取保存
// 当前环境支持的所有授权登录对象
var auths = {};

mui.plusReady(function() {
    // 获取鉴权服务
    getService();
})

// 获取登录授权认证服务列表,单独保存微信登录授权对象
// 5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用
function getService(){
    plus.oauth.getServices(function(services){
        for(var i=0;i<services.length;i++){
            auths[services[i].id] = services[i];
        }
        aweixin = auths['weixin'];
    }, function(e){
        plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
    } );
}

//wx登录                
document.getElementById('wxdenglu').addEventListener('tap',function(){
plus.nativeUI.showWaiting("正在登录中...",{padlock: true}); if(!aweixin.authResult){ authLogin().then(res=>{ wxLogin()//调用自定义的登录接口 }).catch(res=>{ plus.nativeUI.closeWaiting(); }) }else{ wxLogin()//调用自定义的登录接口 } });
// 微信授权登录对象
var aweixin=null;    // 调用plus.oauth.getServices获取保存
// 当前环境支持的所有授权登录对象
var auths = {};

mui.plusReady(function() {
    // 获取鉴权服务
    getService();
})

// 获取登录授权认证服务列表,单独保存微信登录授权对象
// 5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用
function getService(){
    plus.oauth.getServices(function(services){
        for(var i=0;i<services.length;i++){
            auths[services[i].id] = services[i];
        }
        aweixin = auths['weixin'];
    }, function(e){
        plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
    } );
}

//wx登录                
document.getElementById('wxdenglu').addEventListener('tap',function(){
plus.nativeUI.showWaiting("正在登录中...",{padlock: true}); if(!aweixin.authResult){ authLogin().then(res=>{ wxLogin()//调用自定义的登录接口 }).catch(res=>{ plus.nativeUI.closeWaiting(); }) }else{ wxLogin()//调用自定义的登录接口 } });

// 微信授权登录对象varnull// 调用plus.oauth.getServices获取保存
//
当前环境支持的所有授权登录对象var {};

mui.plusReady(function() {
// 获取鉴权服务 getService();
})

// 获取登录授权认证服务列表,单独保存微信登录授权对象
//
5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用function getService(){
plus.oauth.getServices(
function(services){
forvar){
auths[services[i].id]
services[i];
}
aweixin
];
},
function(e){
plus.nativeUI.alert(
JSON.stringify(e));
} );
}

//wx登录
document.getElementById(‘wxdenglu’).addEventListener(‘tap’,function(){

document.getElementById(‘wxdenglu’).addEventListener(‘tap’,function(){true});
ifaweixin.authResult){
authLogin().then(res
{
wxLogin()
//调用自定义的登录接口catch{
plus.nativeUI.closeWaiting();
})
}
else{
wxLogin()
//调用自定义的登录接口 }
});

四、用账号密码登进首页时,判断是否绑定微信,若为绑定微信,则提示让其绑定微信。

五、微信绑定和解绑。

// 微信授权登录对象
// 调用plus.oauth.getServices获取保存
var aweixin=null;    
// 当前环境支持的所有授权登录对象
var auths = {};

mui.plusReady(function(){
           // 获取鉴权服务
          getService()
});

//wx绑定
function weixinBind(){
    plus.nativeUI.showWaiting("正在绑定中...",{padlock: true});
    if(!aweixin.authResult){
        authorize().then(res=>{
            wxBind(1,aweixin.authResult.openid)
        }).catch(res=>{
            plus.nativeUI.closeWaiting();
        })
    }else{
        wxBind(1,aweixin.authResult.openid)
    }
};

//wx解绑
function weixinUnBind(){
    plus.nativeUI.showWaiting("正在解绑中...",{padlock: true});
    wxBind(2,"")
}

// 获取登录授权认证服务列表,单独保存微信登录授权对象
// 5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用
function getService(){
    plus.oauth.getServices(function(services){
        for(var i=0;i<services.length;i++){
            auths[services[i].id] = services[i];
        }
        aweixin = auths['weixin'];
    }, function(e){
        plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
    } );
}

// 获取微信登录授权对象后可进行授权操作
function authorize(){
    return new Promise(function (resolve, reject) {
        if(!aweixin){
            plus.nativeUI.alert("当前环境不支持微信登录");
            return;
        }
        aweixin.authorize(function(e){
            // plus.nativeUI.alert("授权成功:"+JSON.stringify(e));
            authLogin().then(res=>{
                resolve(res);
            });
        }, function(e){
            // plus.nativeUI.alert("授权失败:"+JSON.stringify(e));
            plus.nativeUI.closeWaiting();
            reject(e);
        }, {scope:'snsapi_userinfo',state:'authorize test'});
    })
}

// 获取微信登录授权对象后可进行登录认证操作
function authLogin(){
    return new Promise(function (resolve, reject) {
        if(!aweixin){
            plus.nativeUI.alert("当前环境不支持微信登录");
            return;
        }
        if(!aweixin.authResult){
            aweixin.login(function(e){
                // plus.nativeUI.alert("登录认证成功!"+JSON.stringify(e));
                resolve(e);
            }, function(e){
                reject(e);
            } );
        }else{
            // plus.nativeUI.alert("已经登录认证!");
        }
    })
}
        
// 微信授权登录对象
// 调用plus.oauth.getServices获取保存
var aweixin=null;    
// 当前环境支持的所有授权登录对象
var auths = {};

mui.plusReady(function(){
           // 获取鉴权服务
          getService()
});

//wx绑定
function weixinBind(){
    plus.nativeUI.showWaiting("正在绑定中...",{padlock: true});
    if(!aweixin.authResult){
        authorize().then(res=>{
            wxBind(1,aweixin.authResult.openid)
        }).catch(res=>{
            plus.nativeUI.closeWaiting();
        })
    }else{
        wxBind(1,aweixin.authResult.openid)
    }
};

//wx解绑
function weixinUnBind(){
    plus.nativeUI.showWaiting("正在解绑中...",{padlock: true});
    wxBind(2,"")
}

// 获取登录授权认证服务列表,单独保存微信登录授权对象
// 5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用
function getService(){
    plus.oauth.getServices(function(services){
        for(var i=0;i<services.length;i++){
            auths[services[i].id] = services[i];
        }
        aweixin = auths['weixin'];
    }, function(e){
        plus.nativeUI.alert("获取登录授权服务列表失败:"+JSON.stringify(e));
    } );
}

// 获取微信登录授权对象后可进行授权操作
function authorize(){
    return new Promise(function (resolve, reject) {
        if(!aweixin){
            plus.nativeUI.alert("当前环境不支持微信登录");
            return;
        }
        aweixin.authorize(function(e){
            // plus.nativeUI.alert("授权成功:"+JSON.stringify(e));
            authLogin().then(res=>{
                resolve(res);
            });
        }, function(e){
            // plus.nativeUI.alert("授权失败:"+JSON.stringify(e));
            plus.nativeUI.closeWaiting();
            reject(e);
        }, {scope:'snsapi_userinfo',state:'authorize test'});
    })
}

// 获取微信登录授权对象后可进行登录认证操作
function authLogin(){
    return new Promise(function (resolve, reject) {
        if(!aweixin){
            plus.nativeUI.alert("当前环境不支持微信登录");
            return;
        }
        if(!aweixin.authResult){
            aweixin.login(function(e){
                // plus.nativeUI.alert("登录认证成功!"+JSON.stringify(e));
                resolve(e);
            }, function(e){
                reject(e);
            } );
        }else{
            // plus.nativeUI.alert("已经登录认证!");
        }
    })
}
        

// 微信授权登录对象
//
调用plus.oauth.getServices获取保存varnull;
// 当前环境支持的所有授权登录对象var {};

mui.plusReady(function(){
// 获取鉴权服务 getService()
});

//wx绑定function weixinBind(){
plus.nativeUI.showWaiting(
true});
ifaweixin.authResult){
authorize().then(res
{
wxBind(
,aweixin.authResult.openid)
}).
catch{
plus.nativeUI.closeWaiting();
})
}
else{
wxBind(
,aweixin.authResult.openid)
}
};

//wx解绑function weixinUnBind(){
plus.nativeUI.showWaiting(
true});
wxBind(
)
}

// 获取登录授权认证服务列表,单独保存微信登录授权对象
//
5+APP在plusready事件中调用,uni-app在vue页面的onLoad中调用function getService(){
plus.oauth.getServices(
function(services){
forvar){
auths[services[i].id]
services[i];
}
aweixin
];
},
function(e){
plus.nativeUI.alert(
JSON.stringify(e));
} );
}

// 获取微信登录授权对象后可进行授权操作function authorize(){
returnnewfunction (resolve, reject) {
ifaweixin){
plus.nativeUI.alert(
);
return;
}
aweixin.authorize(
function(e){
// plus.nativeUI.alert(“授权成功:”+JSON.stringify(e));{
resolve(res);
});
},
function(e){
// plus.nativeUI.alert(“授权失败:”+JSON.stringify(e)); plus.nativeUI.closeWaiting();
reject(e);
}, {scope:
});
})
}

// 获取微信登录授权对象后可进行登录认证操作function authLogin(){
returnnewfunction (resolve, reject) {
ifaweixin){
plus.nativeUI.alert(
);
return;
}
ifaweixin.authResult){
aweixin.login(
function(e){
// plus.nativeUI.alert(“登录认证成功!”+JSON.stringify(e)); resolve(e);
},
function(e){
reject(e);
} );
}
else{
// plus.nativeUI.alert(“已经登录认证!”); }
})
}

 

» 本文来自:前端开发者 » 《mui APP 微信登录授权_泠吢_前端开发者》
» 本文链接地址:https://www.rokub.com/73673.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!