Ich erstelle eine Web-App, mit der sich Benutzer über OpenFB für Cordova bei Facebook anmelden können. Ich möchte hier nur bestimmte Merkmale sichtbar, wenn sie angemeldet sind Ich versuche, einen Scheck über Login-Status zu laufen und wieder lenk wenn nicht angemeldet Dies ist, was ich bisher:..Eine Seite umleiten, wenn der Benutzer nicht eingeloggt ist
<head>
<script>
if(openFB.getLoginStatus.loginStatus = 'unknown'){
window.location ="#/app/home";
}
</script>
</head>
Die getLoginStats Funktion ist als solcher:
function getLoginStatus(callback) {
var token = tokenStore.fbAccessToken,
loginStatus = {};
if (token) {
loginStatus.status = 'connected';
loginStatus.authResponse = {accessToken: token};
} else {
loginStatus.status = 'unknown';
}
if (callback) callback(loginStatus);
}
Wenn ich console.log den Wert bekomme ich undefined. Auch wenn Sie mit Facebook eingeloggt sind. Fehle ich etwas Offensichtliches?
Logout Code angefordert:
//logout function
$scope.fbLogout = function(){
openFB.logout(); //logouts after revoking permissions.
alert('Logged out');
}
Sie verwenden GetLoginStatus als Synchronisierungsmethode. Vielleicht versuchen Sie {loginStatus: "someStatus"} von der Methode zurückzugeben. –
Die ursprüngliche FB.getLoginStatus-Methode verwendet ein zwischengespeichertes Ergebnis. Sie müssen einen zusätzlichen Parameter übergeben, um den Cache zu umgehen (siehe Dokumentation). Wenn diese openFB-Sache nur ein Wrapper für die offiziellen SDK-Methoden (?) Ist, dann wahrscheinlich nimmt auch einen solchen Parameter. – CBroe