46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import SuperTokens from "supertokens-web-js";
|
|
import Session from "supertokens-web-js/recipe/session";
|
|
import Passwordless from "supertokens-web-js/recipe/passwordless";
|
|
import { appInfo } from "./config";
|
|
import { logger } from "./";
|
|
|
|
|
|
export const resetRefreshFlag = () => {
|
|
logger.warn("resetRefreshFlag is deprecated. Use refreshManager.reset() instead.");
|
|
};
|
|
|
|
|
|
export const getOrCreateRefreshPromise = (refreshFn: () => Promise<boolean>): Promise<boolean> => {
|
|
logger.warn("getOrCreateRefreshPromise is deprecated. Use refreshManager.refresh() instead.");
|
|
return refreshFn();
|
|
};
|
|
|
|
export const frontendConfig = () => {
|
|
return {
|
|
appInfo,
|
|
recipeList: [
|
|
Passwordless.init(),
|
|
Session.init({
|
|
tokenTransferMethod: "cookie",
|
|
sessionTokenBackendDomain: undefined,
|
|
preAPIHook: async (context) => {
|
|
context.requestInit.credentials = "include";
|
|
return context;
|
|
},
|
|
}),
|
|
],
|
|
};
|
|
};
|
|
|
|
let initialized = false;
|
|
|
|
export function ensureSuperTokensFrontend() {
|
|
if (typeof window === "undefined") return;
|
|
|
|
if (!initialized) {
|
|
SuperTokens.init(frontendConfig());
|
|
initialized = true;
|
|
logger.info("SuperTokens initialized");
|
|
}
|
|
}
|