# awesome-lang-auth > awesome-lang-auth is self-hosted authentication for Node.js, Go, AWS Lambda, Python, Rust and Dart, with Angular, React and Flutter clients: JWT, OAuth2, 2FA. This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [Node.js Authentication Quickstart](https://awesomelangauth.com/docs/intro/): Add JWT authentication to any Node.js app in minutes: install awesome-node-auth, mount the auth router, choose a store and pick an auth recipe. - [Live Node.js Authentication Demos on StackBlitz](https://awesomelangauth.com/docs/live-demo/): Try awesome-node-auth in the browser: Express, NestJS, Next.js and Angular SSR authentication demos running on StackBlitz with no local setup. - [Install awesome-node-auth in a Node.js App](https://awesomelangauth.com/docs/installation/): Install @awesome-lang-auth/node from npm and configure JWT secrets, cookies, CORS, mailer and the user store before mounting the auth router in you... - [Authentication Methods for Node.js](https://awesomelangauth.com/docs/authentication/): Compare the authentication strategies awesome-node-auth supports: email and password, OAuth2 social login, magic links, TOTP 2FA and SMS one-time c... - [Email and Password Authentication in Node.js](https://awesomelangauth.com/docs/authentication/local/): Classic email and password login for Node.js with bcrypt hashing, JWT refresh cookies and a complete forgot-password and reset-password flow. - [OAuth2 Social Login in Node.js (Google, GitHub)](https://awesomelangauth.com/docs/authentication/oauth/): Add Sign in with Google, GitHub or any custom OAuth 2.0 provider to a Node.js backend with GenericOAuthStrategy, account linking and JWT cookies. - [Passwordless Magic Link Login in Node.js](https://awesomelangauth.com/docs/authentication/magic-link/): Send passwordless magic-link emails from Node.js: single-use login tokens, configurable expiry, and the first click counting as email verification. - [TOTP Two-Factor Authentication in Node.js](https://awesomelangauth.com/docs/authentication/totp/): Add Google Authenticator-compatible TOTP 2FA to a Node.js app: QR-code enrolment, code verification, and a login flow that requires the second factor. - [SMS OTP Verification and 2FA in Node.js](https://awesomelangauth.com/docs/authentication/sms/): Send one-time passcodes by SMS from Node.js to verify phone numbers or add SMS two-factor authentication, using any SMS provider reachable over HTTP. - [Database-Agnostic Auth: The IUserStore Interface](https://awesomelangauth.com/docs/database/): awesome-node-auth stores nothing itself: implement IUserStore for SQL, NoSQL or a REST API and pass it to AuthConfigurator to use any database. - [In-Memory User Store for Tests and Prototypes](https://awesomelangauth.com/docs/database/in-memory/): Run awesome-node-auth with zero infrastructure: an in-memory IUserStore implementation for tests, prototypes and the runnable Express demo. - [SQLite Authentication Store (better-sqlite3)](https://awesomelangauth.com/docs/database/sqlite/): A production-ready SQLite IUserStore for awesome-node-auth built on better-sqlite3, with the schema, queries and wiring needed to persist users. - [MySQL and MariaDB Authentication Store (mysql2)](https://awesomelangauth.com/docs/database/mysql/): Store awesome-node-auth users in MySQL or MariaDB with mysql2: table schema, connection pooling and a complete IUserStore implementation. - [MongoDB Authentication Store for Node.js](https://awesomelangauth.com/docs/database/mongodb/): Use MongoDB as the user store for awesome-node-auth: collection layout, indexes and a full IUserStore implementation on the official driver. - [PostgreSQL Authentication Store (node-postgres)](https://awesomelangauth.com/docs/database/postgresql/): Store awesome-node-auth users in PostgreSQL with the pg driver: table schema, parameterised queries and a complete IUserStore implementation. - [Authentication on Top of PostgREST (No Raw SQL)](https://awesomelangauth.com/docs/database/postgrest/): Keep Postgres behind PostgREST and still run awesome-node-auth: implement IUserStore against the REST API instead of writing raw SQL queries. - [Authentication on Top of PHP-CRUD-API](https://awesomelangauth.com/docs/database/php-crud-api/): Put awesome-node-auth in front of PHP-CRUD-API: a zero-config REST layer over MySQL, PostgreSQL or SQL Server used as the IUserStore backend. - [API Reference: Auth, Admin and Tools Routers](https://awesomelangauth.com/docs/api-reference/): The three routers awesome-node-auth exposes — auth, admin and tools — what each one mounts, and how to combine them in a single Node.js application. - [Auth API Endpoints Reference](https://awesomelangauth.com/docs/api-reference/endpoints/): Every endpoint on the awesome-node-auth auth router: register, login, refresh, logout, password reset, email verification, 2FA, OAuth and account. - [ITemplateStore: Custom Emails and UI i18n](https://awesomelangauth.com/docs/api-reference/template-store/): Implement ITemplateStore to replace built-in transactional emails with your own HTML and to inject per-language strings into the built-in auth UI. - [Advanced Authentication Features](https://awesomelangauth.com/docs/advanced/): Multi-tenancy, RBAC, sessions, API keys, webhooks, SSE, telemetry and the admin panel — the advanced half of awesome-node-auth. - [Built-in Auth UI: Login Pages Without a Frontend](https://awesomelangauth.com/docs/advanced/built-in-ui/): Serve ready-made login, register and reset pages straight from your Node.js server: no React or bundler, themed with CSS variables you control. - [auth.js Browser Client (window.AwesomeNodeAuth)](https://awesomelangauth.com/docs/advanced/browser-client/): Drop auth.js into any web page for fetch-based session handling: automatic token refresh, login helpers and headless mode for custom frontends. - [Identity Provider Mode: RS256 JWTs and JWKS](https://awesomelangauth.com/docs/advanced/idp-mode/): Run awesome-node-auth as a central identity provider: RS256-signed tokens and a public JWKS endpoint so resource servers verify without shared secr... - [Session Management and Token Revocation](https://awesomelangauth.com/docs/advanced/sessions/): Move from stateless JWTs to revocable sessions: persist them with a session store, list a user's devices and cut access before the token expires. - [Role-Based Access Control (RBAC) in Node.js](https://awesomelangauth.com/docs/advanced/roles-permissions/): Add roles and permissions to awesome-node-auth with IRolesPermissionsStore, optionally scoped per tenant, and guard routes on permission checks. - [Multi-Tenant Authentication for SaaS Apps](https://awesomelangauth.com/docs/advanced/multi-tenancy/): Serve many organisations from one auth backend: ITenantStore adds tenant records, memberships and tenant-scoped roles to awesome-node-auth. - [CORS and Dynamic Caller Resolution](https://awesomelangauth.com/docs/advanced/cors/): Configure CORS when the auth backend and the frontend live on different domains, and let awesome-node-auth resolve siteUrl per caller for emails. - [CSRF Protection for Cookie-Based Auth](https://awesomelangauth.com/docs/advanced/csrf/): Protect cookie-based sessions with the double-submit cookie pattern: how awesome-node-auth issues, validates and rotates the CSRF token. - [User Metadata Without Schema Changes](https://awesomelangauth.com/docs/advanced/user-metadata/): Attach arbitrary key/value data to users through IUserMetadataStore, without touching BaseUser or adding columns to your users table. - [Extending BaseUser and Auth Interfaces in TypeScript](https://awesomelangauth.com/docs/advanced/extending-interfaces/): Add your own fields to BaseUser, BaseTenant and Session while keeping full TypeScript type safety across stores, callbacks and JWT payloads. - [Account Linking Across OAuth Providers](https://awesomelangauth.com/docs/advanced/account-linking/): Let one user sign in with Google and GitHub and land on the same record: how awesome-node-auth links providers and resolves email conflicts. - [Built-in Admin Panel for Users and Sessions](https://awesomelangauth.com/docs/advanced/admin/): Mount createAdminRouter to get a self-contained admin dashboard — REST API plus vanilla-JS UI — for users, sessions, roles and webhook governance. - [Bearer Token Mode for Mobile and Native Apps](https://awesomelangauth.com/docs/advanced/bearer-token/): Switch from HttpOnly cookies to Authorization bearer tokens for mobile and native clients, and refresh them safely with rotation enabled. - [Built-in HTTP Mailer for Transactional Email](https://awesomelangauth.com/docs/advanced/mailer/): Send password reset, magic link and verification emails through any HTTP relay — Mailgun, SendGrid, Brevo, Postmark — with no SMTP dependency. - [Email Verification Modes and Enforcement](https://awesomelangauth.com/docs/advanced/email-verification/): Choose how strictly awesome-node-auth enforces email verification, resend or expire verification links, and gate login until an address is confirmed. - [Change Email Flow with Double Confirmation](https://awesomelangauth.com/docs/advanced/change-email/): Let signed-in users change their email address through a two-step flow: the new address must be confirmed by link before the change takes effect. - [Self-Service Account Deletion (GDPR)](https://awesomelangauth.com/docs/advanced/account-deletion/): Let users delete their own account with DELETE /auth/account: session cleanup, tenant membership removal and the hooks to erase related data. - [Custom JWT Claims with buildTokenPayload](https://awesomelangauth.com/docs/advanced/custom-claims/): Add your own claims to every access token with buildTokenPayload, and read them on the client without extra round trips to the database. - [AuthEventBus: Auth Event Names and Payloads](https://awesomelangauth.com/docs/advanced/auth-event-bus/): Every authentication event awesome-node-auth emits, the AuthEventPayload shape, and how to subscribe to the bus that feeds telemetry and webhooks. - [API Keys and Service Tokens (M2M Auth)](https://awesomelangauth.com/docs/advanced/api-keys/): Issue machine-to-machine API keys with scopes and IP allowlists; awesome-node-auth stores only a bcrypt hash and never the raw key itself. - [AuthTools: Telemetry, SSE and Webhooks in One](https://awesomelangauth.com/docs/advanced/auth-tools/): AuthTools is the single entry point that wires AuthEventBus to telemetry persistence, real-time SSE streams and outgoing webhook delivery. - [Server-Sent Events (SSE) for Real-Time Auth](https://awesomelangauth.com/docs/advanced/sse/): Push real-time events to authenticated browsers with SseManager: topic subscriptions, per-connection authorisation and reconnect handling. - [Scaling SSE Across Instances with Redis](https://awesomelangauth.com/docs/advanced/sse-scaling/): Broadcast server-sent events across a Kubernetes cluster or several Node instances by backing SseManager with a Redis pub/sub adapter. - [@sseNotify: Real-Time Events from Any Method](https://awesomelangauth.com/docs/advanced/sse-notify-decorator/): The @sseNotify decorator fires real-time notifications from any service or store method, keeping business logic free of transport code. - [Outgoing and Inbound Authentication Webhooks](https://awesomelangauth.com/docs/advanced/webhooks/): Forward auth events to external services with signed outgoing webhooks, and accept inbound calls that drive changes inside your auth backend. - [Authentication Telemetry and Audit Trail](https://awesomelangauth.com/docs/advanced/telemetry/): Persist every identity event with ITelemetryStore for an audit trail you can query, and keep events flowing through the bus when it is omitted. - [Swagger UI and OpenAPI 3.0 Spec for Auth](https://awesomelangauth.com/docs/advanced/swagger/): awesome-node-auth ships an OpenAPI 3.0 spec for the auth, admin and tools routers, served through Swagger UI and enabled outside production. - [Framework Integrations for Node.js Auth](https://awesomelangauth.com/docs/frameworks/): Where awesome-node-auth plugs in: Express, NestJS, Next.js and any Node HTTP framework on the server, plus Angular, React, Flutter, iOS and Android... - [Express Authentication with JWT and OAuth2](https://awesomelangauth.com/docs/frameworks/express/): Add authentication to an Express app with awesome-node-auth: mount the auth router, protect routes with middleware and use HttpOnly JWT cookies. - [NestJS Authentication Module (Guards, JWT)](https://awesomelangauth.com/docs/frameworks/nestjs/): Wire awesome-node-auth into NestJS with AuthModule.forRoot(), a JwtAuthGuard, the @CurrentUser() decorator and a ready-made admin panel. - [Next.js Authentication (Pages Router, JWT)](https://awesomelangauth.com/docs/frameworks/nextjs/): Add JWT authentication to a Next.js app with awesome-node-auth: API-route wiring for the Pages Router, session access and a runnable demo. - [Framework-Agnostic Auth for Any Node HTTP Server](https://awesomelangauth.com/docs/frameworks/framework-agnostic/): Use awesome-node-auth outside Express: framework-neutral HTTP interfaces let you adapt the auth router to Fastify, Koa, Hono or a raw Node server. - [Angular SSR Authentication — Manual Wiring](https://awesomelangauth.com/docs/frameworks/angular/): Wire Angular to an awesome-node-auth backend by hand: HttpClient interceptors, route guards, CSRF headers and SSR-safe session bootstrapping. - [Angular Auth Library: @awesome-lang-auth/angular](https://awesomelangauth.com/docs/frameworks/ng-awesome-node-auth/): The official Angular library for awesome-node-auth: guards, HttpClient interceptors, reactive session signals, CSRF support and SSR hydration. - [React Authentication Library: @awesome-lang-auth/react](https://awesomelangauth.com/docs/frameworks/react/): @awesome-lang-auth/react brings a provider, hooks and route gates to React: cookie sessions on the web, bearer tokens on React Native, one typed cl... - [Python FastAPI Authentication: awesome-python-auth](https://awesomelangauth.com/docs/frameworks/python/): awesome-python-auth brings the same auth model as awesome-node-auth to FastAPI backends; its parity audit tracks what is implemented. - [Dart Backend Authentication: awesome-dart-auth](https://awesomelangauth.com/docs/frameworks/dart/): awesome-dart-auth brings the same auth model as awesome-node-auth to Dart backends on Shelf and Dart Frog, for the family's Angular and Flutter cli... - [Go Backend Authentication: awesome-go-auth](https://awesomelangauth.com/docs/frameworks/go/): awesome-go-auth is the Go port of awesome-node-auth: the same auth endpoints and JWT contract, so existing clients keep working unchanged. - [AWS Lambda Authentication: awesome-lambda-auth](https://awesomelangauth.com/docs/frameworks/lambda/): awesome-lambda-auth is a self-hosted alternative to AWS Cognito: the awesome-go-auth core deployed as a Lambda and DynamoDB stack in your own AWS a... - [Rust Backend Authentication: awesome-rust-auth](https://awesomelangauth.com/docs/frameworks/rust/): awesome-rust-auth brings the same auth model as awesome-node-auth to Rust, targeting the REST shape and token conventions the family's clients use. - [Flutter Authentication Client (and WASM)](https://awesomelangauth.com/docs/frameworks/flutter/): Authenticate a Flutter app against awesome-node-auth with the official awesome_flutter_auth package, including secure token storage and WASM. - [iOS Swift Authentication with Keychain](https://awesomelangauth.com/docs/frameworks/ios/): Call an awesome-node-auth backend from iOS with URLSession, store access and refresh tokens in the Keychain, and refresh them transparently. - [Android Kotlin Authentication with Retrofit](https://awesomelangauth.com/docs/frameworks/android/): Integrate awesome-node-auth in Android with Retrofit, EncryptedSharedPreferences for token storage and an OkHttp interceptor for auto-refresh. - [Use the docs with AI assistants](https://awesomelangauth.com/docs/ai-assistants/): Give an AI assistant the awesome-lang-auth docs: llms.txt indexes every page with absolute URLs, llms-full.txt holds them all in one Markdown file. - [The hosted MCP server is being retired](https://awesomelangauth.com/docs/mcp-server/): The hosted awesome-node-auth MCP server is being retired. The library's documentation is unaffected: getting started, framework guides and the conf...