/** * SSO اختیاری برای زیرسیستم‌ها (مثلاً منوی دیجیتال کافه). * اگر کاربر قبلاً در هسته مرکزی login کرده، دوباره login لازم نیست. */ import { getStoredToken, loginWithRedirect } from "@/lib/auth"; /** آیا کاربر در SSO مرکزی احراز شده؟ */ export function hasCentralSsoSession(): boolean { return !!getStoredToken(); } /** * اگر SSO لازم باشد و session نباشد، به Keycloak هدایت می‌کند. * @returns true اگر session موجود است (می‌توان ادامه داد) */ export async function ensureCentralSsoOrRedirect(returnPath: string): Promise { if (hasCentralSsoSession()) return true; await loginWithRedirect(returnPath); return false; } /** * برای API زیرسیستم — هدر Authorization با توکن مرکزی (در صورت وجود). */ export function optionalSsoAuthHeader(): Record { const token = getStoredToken(); return token ? { Authorization: `Bearer ${token}` } : {}; }