1. 程式人生 > >QQ/微信授權登入js

QQ/微信授權登入js

http://blog.csdn.net/weixin_36050378/article/details/52435241(可以看這個連結,基本上講全了)

本頁面只做微信/QQ的授權登入


這個靜態頁面就沒什麼好說的了

授權登入的js方面,之前找過h5的微信授權程式碼,其實思路是差不多的,但是那個程式碼打包出來到app上面一直不行,只能真機除錯

於是後來就換了另外一種方法,其實邏輯是一樣的,但是這個程式碼可以打包使用

                (function($, doc) { 
$.plusReady(function() {
app.setState(null);
//第三方登入(因為直接寫一個登陸一直只能獲取到QQ的授權,所以就乾脆定義了兩個變數)
var authbth = ['qq'];//qq登入 
var authBtns = ['weixin']; //配置業務支援的第三方登入
var auths = {};
//獲取登入服務
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
auths[service.id] = service;
if (~authBtns.indexOf(service.id)) {
var btn = document.getElementById('wechat');
//如果微信未安裝,則為不啟用狀態
btn.authId = service.id;
}else if(~authbth.indexOf(service.id)){
var btns=document.getElementById('qq');
btns.authId = service.id;
}
}
//微信登入
$('.other').on('tap','#wechat', function() {
var auth = auths[this.authId];
var waiting = plus.nativeUI.showWaiting();
auth.login(function() {
// waiting.close();
// plus.nativeUI.toast("登入認證成功");
auth.getUserInfo(function() {
// plus.nativeUI.toast("獲取使用者資訊成功");
/*alert(JSON.stringify(auth.userInfo));*/
console.log(JSON.stringify(auth.userInfo));
// //獲取資訊想執行的方法,比如快取openid
quickLogin();
}, function(e) {
plus.nativeUI.toast("獲取使用者資訊失敗:" + e.message);
plus.nativeUI.closeWaiting();
});
}, function(e) {
waiting.close();
plus.nativeUI.toast("登入認證失敗:" + e.message); 
plus.nativeUI.closeWaiting();
});
});
// qq登入
$('.other').on('tap','#qq', function(){
var auth = auths[this.authId];
auth.login(function() {
// plus.nativeUI.toast("登入認證成功");
auth.getUserInfo(function() {
quickLogin();
}, function(e) {
plus.nativeUI.toast("獲取使用者資訊失敗:" + e.message);
plus.nativeUI.closeWaiting();
});
}, function(e) {
plus.nativeUI.toast("登入認證失敗:" + e.message);
});
});
}, function(e) {
plus.nativeUI.toast("獲取登入認證失敗:" + e.message);
});


});
}(mui, document));



//快速登入
function quickLogin() {
$.ajax({
url: ‘’,
type: 'POST',
dataType: 'json',
data: { //傳值 
},
success: function(data) {
// //成功執行的方法放這裡
},
error: function(e) {
console.log(e)
}
})
}
// 繫結快速登入
function bindUser() {
$.ajax({
url: ‘’,
type: 'POST',
dataType: 'json',
headers: {
   },
data: {
},
success: function(data) {
// 
},
error: function(e) {
console.log(e)
}
})
}

(本博主只是一個初學的菜鳥--Anguler,希望能夠幫助到需要的人,如果有不正確的地方希望多多包涵和歡迎隨時提出來,一起進步)