bkd-mba-fbi / webapp-schulverwaltung

JavaScript Web-Modul, das mit SLH.Evento Backend (REST-API) die Prozesse der Schulverwaltung online sicherstellt
https://bkd-mba-fbi.github.io/webapp-schulverwaltung/
MIT License
9 stars 0 forks source link

Apps sollen CLX.LoginToken von sessionStorage lesen #564

Open hupf opened 1 year ago

hupf commented 1 year ago

Problem

Aktuell lesen die Apps (ausser Schulverwaltung) das CLX.LoginToken vom localStorage. Dies hat zur Folge, dass wenn ein User in verschiedenen Tabs unterschiedliche Apps offen hat, es zu Berechtigungsproblemen kommt, da localStorage global ist und so in der einen App das Token von der anderen App verwendet wird (und so möglicherweise einen falschen «Scope» hat).

Lösung

Aus diesem Grund stellt das Evento Portal das CLX.LoginToken der jeweiligen App stets im sessionStorage zur Verfügung. Bei den bestehenden Apps soll also ein Change eingereicht werden, damit das CLX.LoginToken (und idealserweise auch CLX.TokenExpire) vom sessionStorage statt vom localStorage gelesen wird. Beim uiCulture Wert ist dies kein Problem, dieser kann weiterhin vom localStorage gelesen werden.

Noch flexibler (vor allem wenn die Apps auch standalone verwendet werden) wäre eine Art Fallback, wie wir es bei der Schulverwaltung implementiert haben:

sessionStorage.getItem("CLX.LoginToken") || localStorage.getItem("CLX.LoginToken");

Weiteres ist auch im README vom Evento Portal dokumentiert:

https://github.com/bkd-mba-fbi/evento-portal/blob/main/doc/app-integration.md#evento-portal--app-api

TODOs

schefbi commented 6 months ago

Werde issues bei den eingebunden Apps machen.