UNPKG

@e280/authlocal

Version:

User-sovereign login system for everybody

55 lines (43 loc) 1.11 kB
import {Token} from "../token/types.js" import {SignClaimOptions} from "../claim/types.js" import {Identity, Nametag} from "../identity/types.js" export type VerifyLoginOptions = {session: Session, appOrigins: string[]} export type LoginSignClaimOptions<C> = Omit<SignClaimOptions<C>, "session" | "appOrigin"> /** a login session */ export type Session = { /** private key for a login session */ secret: string /** proof for this session */ proofToken: string } export type GenerateSessionOptions = { expiresAt: number identity: Identity appOrigin: string authorityOrigin: string } /** proof that a session was signed by the user's identity */ export type Proof = { sessionId: string nametag: Nametag } export type SignProofOptions = { identitySecret: string expiresAt: number proof: Proof appOrigin: string authorityOrigin: string } export type VerifyProofOptions = { proofToken: string appOrigins: string[] atTime?: number | null } /** token payload that contains proof */ export type ProofPayload = { data: Proof exp: number sub: string iss: string aud: string } & Token