feat: share SSO session with admin panel
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 12s

This commit is contained in:
Kroonk
2026-05-21 23:55:18 +02:00
parent 14505c2296
commit ae775c4dcf
7 changed files with 23 additions and 9 deletions

View File

@@ -5,6 +5,7 @@ const SCOPES = 'openid profile email';
const CONFIG_URL = '/services.json?v=1';
const LOCAL_CONFIG_KEY = 'mischlabs.dashboard.config';
const TOKEN_KEY = 'mischlabs.admin.tokens';
const DASHBOARD_TOKEN_KEY = 'mischlabs.dashboard.tokens';
const PKCE_KEY = 'mischlabs.admin.pkce';
const loginButton = document.querySelector('#loginButton');
@@ -69,7 +70,7 @@ function decodeJwt(token) {
function getStoredTokens() {
try {
const raw = sessionStorage.getItem(TOKEN_KEY);
const raw = sessionStorage.getItem(TOKEN_KEY) || sessionStorage.getItem(DASHBOARD_TOKEN_KEY);
return raw ? JSON.parse(raw) : null;
} catch {
return null;
@@ -78,10 +79,12 @@ function getStoredTokens() {
function storeTokens(tokens) {
sessionStorage.setItem(TOKEN_KEY, JSON.stringify(tokens));
sessionStorage.setItem(DASHBOARD_TOKEN_KEY, JSON.stringify(tokens));
}
function clearTokens() {
sessionStorage.removeItem(TOKEN_KEY);
sessionStorage.removeItem(DASHBOARD_TOKEN_KEY);
sessionStorage.removeItem(PKCE_KEY);
}
@@ -1185,6 +1188,9 @@ function closeNavDrawer() {
async function boot() {
await handleCallback();
tokenSet = getStoredTokens();
if (isTokenValid(tokenSet)) {
storeTokens(tokenSet);
}
if (!isTokenValid(tokenSet)) {
loginPanel.hidden = false;