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:
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 dasCLX.LoginToken
(und idealserweise auchCLX.TokenExpire
) vom sessionStorage statt vom localStorage gelesen wird. BeimuiCulture
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:
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