UNPKG

scrivito

Version:

Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.

58 lines (47 loc) 1.86 kB
import { anonymousVisitorAuthHandler } from 'scrivito_sdk/app_support/anonymous_visitor_auth_handler'; import { EnsureUserIsLoggedInParams } from 'scrivito_sdk/app_support/auth_handler'; import { insideUiAuthHandler } from 'scrivito_sdk/app_support/inside_ui_auth_handler'; import { isInLoggedInState } from 'scrivito_sdk/app_support/logged_in_state'; import { loggedInVisitorAuthHandler } from 'scrivito_sdk/app_support/logged_in_visitor_auth_handler'; import { nodeAdapter } from 'scrivito_sdk/app_support/node_adapter'; import { uiAdapter } from 'scrivito_sdk/app_support/ui_adapter'; import { User } from 'scrivito_sdk/app_support/user'; import { getIamAuthUrl } from 'scrivito_sdk/client'; import { assignLocation } from 'scrivito_sdk/common'; /** @public */ export function currentUser(): User | null { const userData = authHandler().getUserData(); return userData ? new User(userData) : null; } /** @public */ export function isUserLoggedIn(): boolean { return authHandler().isUserLoggedIn(); } /** @public */ export function ensureUserIsLoggedIn( params: EnsureUserIsLoggedInParams = {} ): void { return authHandler().ensureUserIsLoggedIn(params); } export function getIamTokenFetcher() { return authHandler().iamTokenFetcher(); } export function getLoginHandler() { return authHandler().loginHandler(); } /** @public */ export function logout(returnTo?: string): void { if (!uiAdapter) logoutAsync(returnTo); } async function logoutAsync(returnTo?: string) { const url = await getIamAuthUrl('logout'); assignLocation( returnTo ? `${url}?return_to=${encodeURIComponent(returnTo)}` : url ); } function authHandler() { if (nodeAdapter) return nodeAdapter.nodeAuthHandler; if (uiAdapter) return insideUiAuthHandler; if (isInLoggedInState()) return loggedInVisitorAuthHandler; return anonymousVisitorAuthHandler; }