UNPKG

@krashnakant/next-keycloak

Version:

An authentication library based on Keycloak for NextJs applications

33 lines (24 loc) 771 B
import type { KeycloakConfig } from "keycloak-js"; import { isServer } from "./Util"; const Keycloak = !isServer() ? require("keycloak-js") : null; export type Keycloak = typeof Keycloak; // Global Keycloak instance let keycloakInstance = Keycloak; /** * @description A function to create instance of Keycloak based on proper environment (server or client) * @param keycloakConfig * @returns */ export const getKeycloakInstance = ( keycloakConfig: KeycloakConfig ): Keycloak | undefined => { const isServerSide = isServer(); if (isServerSide) { return undefined; } keycloakInstance = typeof Keycloak.default === 'function' ? new Keycloak.default(keycloakConfig) : new Keycloak(keycloakConfig); return keycloakInstance; };