2017-09-21 1 views
0

Das ist, was ich, wenn meine Seite geladen wird:Wie kann ich angemeldet bleiben, nachdem der Benutzer erfolgreich mit seinem iCloud-Konto authentifiziert wurde?

(function($){})(window.jQuery); 

$(document).ready(function() { 

    window.addEventListener('cloudkitloaded', function() { 

    CloudKit.configure({ 
     containers: [{ 
     containerIdentifier: 'iCloud.pl.blueworld.fieldservice', 
     apiToken: 'fc363369412ad6c99020e7e0ed3e2be121008e34534cff7debe1f4f7f829d152', 
     environment: 'production' 
     }] 
    }); 

    var container = CloudKit.getDefaultContainer(); 
    var privateDB = container.privateCloudDatabase; 

    this.gotoAuthenticatedState = function(userInfo) { 

     if(userInfo.isDiscoverable) { 
     //success 
     } else { 
     //failure 
     } 

     container 
     .whenUserSignsOut() 
     .then(this.gotoUnauthenticatedState); 
    }; 

    this.gotoUnauthenticatedState = function(error) { 
     //do sth of sign out 

     container 
     .whenUserSignsIn() 
     .then(this.gotoAuthenticatedState) 
     .catch(this.gotoUnauthenticatedState); 
    }; 

    container.setUpAuth().then(function(userInfo) { 

     if(userInfo) { 
      this.gotoAuthenticatedState(userInfo); 
     } else { 
      this.gotoUnauthenticatedState(); 
     } 
    }); 
    }); 
}); 

Und wenn ich mit Erfolg melden, gibt richtige Taste erscheint:

enter image description here

Aber jedes Mal, wenn ich die Seite aktualisieren Sie diese Taste Änderungen:

enter image description here

Was sessi zu halten zu tun auf und Möglichkeit, Datensätze abzurufen, bis sich der Benutzer manuell abmeldet?

Wie überprüft man, ob es eine aktuelle Sitzung gibt (der Benutzer hat sich bereits authentifiziert) und benutzt?

Antwort

0

Setzen Sie Ihr Token in ein apiTokenAuth Objekt und fügen Sie einen persist Schlüssel hinzu.

CloudKit.configure({ 
    containers: [{ 
     containerIdentifier: '<your container>', 
     environment: 'production', 

     apiTokenAuth: { 
      apiToken: '<your token>', 
      persist: true 
     } 
    }] 
}); 
Verwandte Themen