ForgeKit Stable v1.0 is officially released. Upgrade now for zero-assertions DB compilation. Read Release Notes
Docs Nav

@forgekit/auth

@forgekit/auth handles JWT tokens signing, multi-factor token verification, and session database adapters for serverless runtimes.

Initialization Reference

Register auth within your core app instance:

import { ForgeApp } from '@forgekit/core';
import { auth } from '@forgekit/auth';

const app = new ForgeApp();

app.use(
	auth({
		session: {
			maxAge: '7d',
			cookie: { secure: true, sameSite: 'lax' }
		},
		providers: ['github', 'google'],
		secret: process.env.FORGEKIT_AUTH_SECRET
	})
);

Session API Reference

Get Current Session

Inspect requests to fetch the user session data:

const session = await app.auth.getSession(request);
if (session) {
	console.log('Session User Email:', session.user.email);
	console.log('User Roles:', session.user.roles); // Typed as string[]
}

Sign In Credentials

Authenticate user email/password login attempts:

const { user, token } = await app.auth.signInWithPassword({
	email: 'user@example.com',
	password: 'secure-password-here'
});

Supported OAuth Providers

Configure OAuth providers natively by enabling redirect handlers:

  • GitHub: Requires GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET.
  • Google: Requires GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.
  • Discord: Requires DISCORD_CLIENT_ID and DISCORD_CLIENT_SECRET.