44 lines · 1.5 KB · TypeScript
RawDownload
import type { ServerAuthDescriptor } from "@t3tools/contracts";import { Effect, Layer } from "effect"; import { ServerConfig } from "../../config.ts";import { ServerAuthPolicy, type ServerAuthPolicyShape } from "../Services/ServerAuthPolicy.ts";import { resolveSessionCookieName } from "../utils.ts";import { isLoopbackHost, isWildcardHost } from "../../startupAccess.ts"; export const makeServerAuthPolicy = Effect.gen(function* () {  const config = yield* ServerConfig;  const isRemoteReachable = isWildcardHost(config.host) || !isLoopbackHost(config.host);   const policy =    config.mode === "desktop"      ? isRemoteReachable        ? "remote-reachable"        : "desktop-managed-local"      : isRemoteReachable        ? "remote-reachable"        : "loopback-browser";   const bootstrapMethods: ServerAuthDescriptor["bootstrapMethods"] =    policy === "desktop-managed-local"      ? ["desktop-bootstrap"]      : config.mode === "desktop" && policy === "remote-reachable"        ? ["desktop-bootstrap", "one-time-token"]        : ["one-time-token"];   const descriptor: ServerAuthDescriptor = {    policy,    bootstrapMethods,    sessionMethods: ["browser-session-cookie", "bearer-session-token"],    sessionCookieName: resolveSessionCookieName({      mode: config.mode,      port: config.port,    }),  };   return {    getDescriptor: () => Effect.succeed(descriptor),  } satisfies ServerAuthPolicyShape;}); export const ServerAuthPolicyLive = Layer.effect(ServerAuthPolicy, makeServerAuthPolicy);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t