@e280/authlocal
Version:
User-sovereign login system for everybody
38 lines (29 loc) • 760 B
text/typescript
import {Time} from "../../tools/time.js"
import {Login} from "../concepts/session/login.js"
import {generateSession} from "../concepts/session/session.js"
import {generateIdentity} from "../concepts/identity/identity.js"
export class Mock {
constructor(public options: {
appOrigin?: string
authorityOrigin?: string
} = {}) {}
async login({
expiresAt = Time.future.minutes(5),
}: {
expiresAt?: number
} = {}) {
const o = "https://example.e280.org"
const {appOrigin = o, authorityOrigin = o} = this.options
const identity = await generateIdentity()
const session = await generateSession({
identity,
expiresAt,
appOrigin,
authorityOrigin,
})
return Login.verify({
session,
appOrigins: [appOrigin],
})
}
}