APE bietet auch ein Session-Handling. Über das Modul Core/Session.js wird der Verbindungsstatus im Cookie auch über den Reload hinweg gesichert und wiederhergestellt.
Zur Authentifizierung wird eine Token an den APE-Server gesandt, der diese dann via Post-Request an die Web-Anwendung verifiziert und die entsprechenden Benutzerdaten zurück gibt und als private/öffentliche Daten zum Benutzer-Objekt speichert.
Konkreter Anwendungsfall
Die Benutzeranmeldung erfolgt über die Web-Anwendung. In einem Bereich der Webseite, der nur nach Anmeldung zu erreichen ist, soll die Identität des Benutzers in die die Session der APE-Verbindung übernommen werden. Dazu erfolgt am Anfang der APE-Sitzung eine einmalige Authentifizierung gegenüber der Web-Anwendung.
Implementierung Javascript-Client
Implementierung Javascript- Servermodul
Schnittstelle der Web-Anwendung
Die Web-Anwendung hat einen Login-Adresse, an die das Token gepostet wird. Als Rückgabe sendet die Web-Anwendung JSON-Daten, die als User-Attribute für die weitere Sitzung genutzt werden.
Neue Session
- Der Client sendet mit Hilfe des APE-Frameworks den “Connect”-Befehl an den APE-Server. Als Parameter enthält der Request das Authentifzierungstoken
- Der APE-Server leitet via HTTP-Request an die Web-Anwendung die Authentifizierung ein.
- Die Web-Anwendung antwortet mit einem JSON-Objekt, das die benötigten User-Daten enthält. Fehler werden über die bekannten HTTP-Status-Codes gesandt.
- Nach erfolgreicher Authentifizierung setzt der APE-Server die nötigen User-Daten (öffentliche/private)
- Die aktualisierten User-Daten werden zurück zum Client gepushed
- Der Client aktualisiert den Status und verwendet die gesetzten Daten
Bestehende Session
- Der Client hat eine aktive Session, die clientseitig in Cookies gespeichert wird.
- Der Client sendet die Session-Daten und stellt so die aktive Sitzung wieder her
- Innerhalb der bestehenden Session sind alle Daten ohne weiteren Backend-Request verfügbar und so kann der Client seine Status-Anzeige, weitere Auflistungen wie aktive Benutzer/Buddies, Gruppen- und Einzel-Dialoge setzen
Zusammenfassung
Mit wenigen Zeilen Programmcode kann man eine Session für die Verbindungen etablieren und die Benutzerdaten aus dem Backend verwenden. Im nächsten Teil wird die Verwendung der Channels zur Statusanzeige vorgestellt.