Files
WRNexusJS/examples/auth-showcase/app/lib/auth.ts
T
2026-07-29 12:51:10 +05:30

30 lines
868 B
TypeScript

import { createAuthEngine, MemoryAuthStore } from "@wrnexus/auth";
export const outbox: unknown[] = [];
export const auth = createAuthEngine({
store: new MemoryAuthStore(),
secret: "development-auth-showcase-secret-change-in-production",
issuer: "WRNexus Auth Showcase",
sendLoginAlerts: true,
onSignedIn(ctx, returnTo) {
const safe = returnTo?.startsWith("/") && !returnTo.startsWith("//") ? returnTo : "/account";
return Response.redirect(new URL(safe, ctx.url), 303);
},
onSignedOut(ctx) {
return Response.redirect(new URL("/sign-in", ctx.url), 303);
},
onSuccessfulSignUp() {
return {
autoSignIn: true,
redirectTo: "/account",
};
},
delivery: {
async send(message) {
outbox.push(message);
console.info(`[auth-showcase] queued ${message.template} for ${message.destination}`);
},
},
});