我發現這個代碼:離子2 Facebook登錄
login() {
this.platform.ready().then(() => {
this.facebookLogin().then((success) => {
alert(success.access_token);
}, (error) => {
alert(error);
});
});
}
facebookLogin() {
return new Promise(function(resolve, reject) {
var browserRef = window.cordova.InAppBrowser.open("https://www.facebook.com/v2.0/dialog/oauth?client_id=" + "CLIENT_ID_HERE" + "&redirect_uri=http://localhost/callback&response_type=token&scope=email", "_blank", "location=no,clearsessioncache=yes,clearcache=yes");
browserRef.addEventListener("loadstart", (event) => {
if ((event.url).indexOf("http://localhost/callback") === 0) {
browserRef.removeEventListener("exit", (event) => {});
browserRef.close();
var responseParameters = ((event.url).split("#")[1]).split("&");
var parsedResponse = {};
for (var i = 0; i < responseParameters.length; i++) {
parsedResponse[responseParameters[i].split("=")[0]] = responseParameters[i].split("=")[1];
}
if (parsedResponse["access_token"] !== undefined && parsedResponse["access_token"] !== null) {
resolve(parsedResponse);
} else {
reject("Problem authenticating with Facebook");
}
}
});
browserRef.addEventListener("exit", function(event) {
reject("The Facebook sign in flow was canceled");
});
});
}
我有點困惑,如何在用戶與一些社交應用如Facebook簽署離子2應用識別/谷歌? 例如,我想創建一個登錄頁面,該頁面提示用戶登錄,並且一旦用戶登錄,就不會顯示該頁面。 我熟悉存儲會話/ cookie的nodejs + passportjs,但它如何處理Ionic 2?
代碼的來源似乎並沒有從Driftyco/Ionicframework。可能你應該看看:http://ionicframework.com/docs/v2/native/facebook/ 或者提供你正在引用上面代碼的源代碼項目的信息。看起來像解析Cordova InAppBrowser中的一些登錄響應。 –