UNPKG

@e280/authlocal

Version:

User-sovereign login system for everybody

38 lines (30 loc) 712 B
import {endpoint, Messenger, WindowConduit} from "@e280/renraku" import {makeAppFns} from "./app-fns.js" import {Session} from "../concepts/session/types.js" // // this facilitates postMessages, // and is installed on the consumer app side // export function setupInApp( appWindow: Window, popupWindow: WindowProxy, popupOrigin: string, login: (session: Session | null) => Promise<void>, ) { const conduit = new WindowConduit( appWindow, popupWindow, popupOrigin, ({origin}) => { return origin === popupOrigin }, ) new Messenger({ conduit, timeout: Infinity, getLocalEndpoint: () => endpoint({fns: makeAppFns(login)}), }) return { dispose: () => conduit.dispose(), } }