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
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 12s
This commit is contained in:
8
admin.js
8
admin.js
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user