2020-10-20 Refactoring

Mittlerweile ist das unser 18. Blogeintrag. Auch wenn wir unsere Fortschritte manchmal nur gering wahrnehmen und gerne schon weiter wären, kommen wir stetig Stück für Stück vorwärts.

Gefühlt endlos ziehen sich für uns die Themen Login, Authentifizierung mit Keycloak und AppAuth. Obwohl wir uns für diesen Sprint den Dialog für das Erstellen einer neuen Gruppe vorgenommen haben, drehten sich die letzten zwei Tage fast ausschließlich um die oberen Themen, weil uns immer wieder Probleme in die Quere kommen.

Am Montag haben wir den Mechanismus für das Laden, Speichern und Löschen des Keycloak Tokens auf dem Handy überarbeitet. Es scheint alles auf einmal viel einfacher und besser wiederverwendbar zu sein.
Außerdem haben wir begonnen das Format des Tokens zu überarbeiten, den wir über unseren Identitfy Provider zurückgeben. Jetzt haben wir 3 unterschiedliche Tokentypen. Klingt komplizierter, ist am Ende aber einfacher.
Auf der internen Seite haben wir einen Token, den wir nach dem Einloggen bei Keycloak zurückbekommen. Der zweite ist im Format, das wir vom Keycloak System erhalten, wenn wir uns einen neuen Token per Refresh zurückgeben lassen.
Nach außen sieht man von all dem aber nichts. Hier kommt der dritte Token ins Spiel, der wohl geformt und gut zu verwenden ist. Der Token, den wir aus dem Login- bzw. Refresh-Token erzeugen und nach außen weitergeben.
Damit hat AppAuth noch mehr seiner Daseinsberechtigung verloren.

Gebraucht haben wir die Änderung, um in der App zu prüfen, ob ein Token abgelaufen ist. Nur in diesem Fall lösen wir ein Refresh des Tokens aus, um so den Netzwerk-Traffic zu reduzieren.

Auf der Keycloak-Seite haben wir mit den ablaufenden Token gekämpft. Nach langem Rumprobieren wissen wir jetzt, welche Einstellungen wir verändern müssen, um die Dauer der Access- und Refreshtokens einzustellen. Vorher war es nicht so einfach ersichtlich.

Als letztes hat Verena noch an dem Hinzufügen neuer Teams gearbeitet. Wir haben jetzt einen Button zum Hinzufügen. Schick und demnächst auch mit Funktionalität.

Am Ende des Tages lief unser Login schon besser als letzte Woche. Es ist nicht nur möglich sich einzuloggen, sondern beim Neustart der App erscheint der Login-Screen nicht, sofern ein alter Token vorhanden ist, der wiederverwendet werden kann.
Beim Rumspielen sind uns diesem Zusammenhang allerdings schon nach wenigen Minuten einige Tests aufgefallen, die wir derzeit nicht bestehen.
Was, wenn der Webserver nicht mehr erreichbar ist?
Was, wenn der User vom Keycloak System ausgeloggt wird und irgendwann neue Tokens anfordert?
Was, wenn der User sich einloggen möchte und der Webserver nicht online ist, aber eine Ressource requestet wird?

Daran werden wir nächste Woche weiterarbeiten und dann können wir uns mehr und mehr auf das UI konzentrieren :).

Schreibe einen Kommentar