-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unerwünschtes automatisches Logout aus der SAC-App #1612
Comments
➤ Mike Wong commented: Andreas Gurtner In der Android App loggen wir das Event, wenn eine Session Expiration (invalid_grant Antwort vom IDP, siehe https://datatracker.ietf.org/doc/html/rfc6749#section-5.2 ( https://datatracker.ietf.org/doc/html/rfc6749#section-5.2|smart-link ) ) passiert. Ich sehe hier auf Sentry 6354 relevante Events (auf Android) in den letzten 30 Tagen. Bei der invalid_grant Exception sehe ich zwei Fehlermeldungen (eine von WSO2 und eine von Hitobito:
Dieses Issue war bereits in der alten App bekannt und tritt auf wenn die App ein Token Refresh anfragt, dieser Request beim Server ankommt aber die Antwort (also das neue Token) nicht bei der App ankommt. Der Server hat dadurch das alte Token bereits invalidiert, die App hat aber das neue nicht erhalten und wird beim nächsten Request wieder das alte mitschicken. Dieses Problem müsste sich mit einer korrekten IDP Konfiguration grösstenteils beheben lassen. |
➤ Andreas Gurtner commented: Hoi Mike Wong , vielen Dank fürs schnelle Feedback! Dies sind ja doch einige Fälle... Die WSO2 Einträge ignorieren wir mal, da dies sowieso der auslaufende Strang ist. Bezüglich Hitobito habe ich kurz mit Andreas Maierhofer geschaut, er analysieren und behebt das Problem. |
➤ Andreas Gurtner commented: Hoi Andreas Maierhofer , hier noch zwei Beispiele von Personen die regelmässig aus der App-Ausgeloggt werden: https://portal.sac-cas.ch/de/groups/6800/people/231537 ( https://portal.sac-cas.ch/de/groups/6800/people/231537 ) und https://portal.sac-cas.ch/de/groups/6874/people/443851 ( https://portal.sac-cas.ch/de/groups/6874/people/443851 ) |
Ich habe das lokal ausprobiert und folgendes Verhalten beobachtet.
Soweit ich das beobachtet habe, muss der Client also das neue Token verwendet haben, damit das alte Token invalidiert wird. Können wir ein Timing issue in der App ausschliessen? Aktuell haben wir +2000ms antwortzeiten auf Prod für token requests. Kommt vielleicht die Antwort vom Refresh "zu spät" beim Client an? |
➤ Mike Wong commented: Andreas Maierhofer Danke für deine lokalen Tests. Das sieht nach einem für mich korrekten und sinnvollen Verhalten aus. Timing Issues kann es bei der App immer geben. Angenommen ich habe langsames Internet (schlechte Verbindung, VPN, etc.), dann kann die App einen Token Refresh Request machen, der beim Backend ankommt, aber die Antwort vom Server erreicht die App nicht weil der Request dazwischen in ein Timeout reinläuft. Das können wir nicht umgehen, ausser wir würden Timeouts generell ausschalten, was dafür andere Probleme mit sich bringen würde. Gemäss deiner Beobachtung müsste das allerdings kein Problem darstellen, da die App beim nächsten Mal einfach erneut einen Token Refresh versuchen würde. Sofern der IDP dabei das Refresh Token (du schreibst nur vom Access Token) weiterhin akzeptiert, würde das dann zu einem Erfolg führen. Das erklärt für mich dann nicht die Fehlermeldung, die wir von Hitobito erhalten. Wie verhält sich der IDP wenn ich mehrere Sessions besitze und mich in einer davon auslogge (z.B. im Browser). Werden nur die Tokens von dieser Session invalidiert oder alle mit dem User verknüpften Tokens? |
Ausgangslage
Meldungen von Fabian, dass gewisse Mitglieder sich immer wieder neu in die SAC-App einloggen müssen.
“Wenn ich von der App her kommen einlogge, möchte ich “ewig” eingeloggt bleiben. Darum soll der default für das Flag “"angemeldet bleiben" für Logins von der App “aktiviert” sein.”
Anforderung/ Analyse
Analyse wieso die App-Benutzer ausgeloggt werden & Definition einer möglichen Lösung
┆Issue is synchronized with this Jira Task by Unito
┆Issue Number: HIT-961
The text was updated successfully, but these errors were encountered: