Melody AuthMelody Auth
  • Auth Server Setup
  • Admin Panel Setup
  • Email Provider Setup
  • SMS Provider Setup
  • External Identity Providers

    • Social Sign-In Provider Setup
    • OIDC SSO Setup
    • SAML SSO Setup
  • Feature Overview
  • Main Features

    • Authentication
    • JWT & JWKS
    • Multi-Factor Authentication
    • Role-Based Access Control
    • Policies
    • Organizations
  • Additional Features

    • User Attributes
    • App Banners
    • Organization Groups
    • Impersonation
    • Log Management
  • Customization

    • Auth Server Configuration
    • Branding
    • Localization
  • Frontend SDKs

    • React SDK
    • Angular SDK
    • Vue SDK
    • Web SDK
  • Backend APIs

    • S2S API Setup
    • S2S API Swagger
    • Embedded Auth API Setup
    • Embedded Auth API Swagger
  • Deployment Pipelines
  • Rotate JWT Secret
  • English
  • zh-CN
  • Auth Server Setup
  • Admin Panel Setup
  • Email Provider Setup
  • SMS Provider Setup
  • External Identity Providers

    • Social Sign-In Provider Setup
    • OIDC SSO Setup
    • SAML SSO Setup
  • Feature Overview
  • Main Features

    • Authentication
    • JWT & JWKS
    • Multi-Factor Authentication
    • Role-Based Access Control
    • Policies
    • Organizations
  • Additional Features

    • User Attributes
    • App Banners
    • Organization Groups
    • Impersonation
    • Log Management
  • Customization

    • Auth Server Configuration
    • Branding
    • Localization
  • Frontend SDKs

    • React SDK
    • Angular SDK
    • Vue SDK
    • Web SDK
  • Backend APIs

    • S2S API Setup
    • S2S API Swagger
    • Embedded Auth API Setup
    • Embedded Auth API Swagger
  • Deployment Pipelines
  • Rotate JWT Secret
  • English
  • zh-CN
  • Feature Overview

Feature Overview

A consolidated reference of supported Melody Auth product capabilities and customer-visible controls, with support indicators for each access method. This overview focuses on product-facing functionality rather than low-level SDK helper APIs or deployment mechanics.

Legend: ✓ = Supported


Authentication & Sign-In

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Password sign-inSign in with email and password✓✓
Password sign-in toggleEnable or disable email/password sign-in independently of other sign-in methods✓
Passwordless sign-inSign in via a one-time code sent to email✓
Passwordless sign-in toggleEnable or disable passwordless sign-in independently of other sign-in methods✓
Magic link sign-inUse passwordless flow as a one-click email link instead of a code✓
Sign-upRegister a new user account✓✓
Sign-up toggleEnable or disable user self-registration✓
Collect names at sign-upRequire, allow, or hide first/last name fields on the sign-up form✓✓
Sign-outEnd the current session✓✓
Email verificationRequire users to verify their email address after sign-up✓✓✓
Password resetSend a reset code and let the user set a new password✓✓
Account linkingLink or unlink a second auth identity (e.g. social + password) to one user account✓✓
Social sign-in — GoogleOAuth 2.0 sign-in via Google✓
Social sign-in — FacebookOAuth 2.0 sign-in via Facebook✓
Social sign-in — GitHubOAuth 2.0 sign-in via GitHub✓
Social sign-in — DiscordOAuth 2.0 sign-in via Discord✓
Social sign-in — AppleOAuth 2.0 sign-in via Apple✓
OIDC SSOSign in through an external OpenID Connect provider✓
SAML SSOSign in through a configured SAML 2.0 identity provider (Node.js deployment)✓✓

Multi-Factor Authentication (MFA)

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Email MFASend a one-time code to the user's email as a second factor✓✓✓✓
OTP (TOTP) MFATime-based one-time password via an authenticator app✓✓✓✓
SMS MFASend a one-time code via SMS as a second factor✓✓✓✓
Passkeys (WebAuthn)Enroll and verify a device-bound passkey for phishing-resistant sign-in and MFA bypass✓✓✓✓
Recovery codesGenerate and use a one-time backup code to recover access when MFA is unavailable✓✓
Remember deviceSkip MFA on subsequent logins from a trusted device for 30 days✓✓
Enforce one MFA enrollmentRequire users to enroll at least one MFA method before completing sign-in✓
Email MFA as backupAllow email MFA as a fallback when the primary MFA method is unavailable✓✓
App-level MFA configurationOverride MFA requirements and email-backup behavior per application✓✓
MFA enrollment promptGuide users through MFA setup as part of the auth flow✓✓

OAuth 2.0 & Token Management

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Authorization code flow (PKCE)Issue an authorization code that is exchanged for tokens, with PKCE protection✓
Token exchangeExchange an authorization code for access, refresh, and ID tokens✓✓
Token refreshUse a refresh token to obtain a new access token✓✓
Popup authorizeOpen the authorize flow in a popup window instead of a redirect✓
Token revocationRevoke an active refresh token✓
Client credentials grantIssue an access token directly to a server application using client ID + secret✓
App consent & scopesPrompt users to approve the scopes an application is requesting✓✓✓
UserInfo endpointReturn authenticated user profile data from an access token✓
OpenID configurationExpose a .well-known discovery document for OpenID Connect clients✓
JWKS endpointExpose the public keys used to verify JWTs✓
JWT secret rotationReplace the active JWT signing secret with zero downtime✓
Active sessions — listList all active refresh token sessions for a user✓✓
Active sessions — revokeRevoke a specific active session for a user✓✓
Token lifetime configurationConfigure expiry durations for auth codes, access tokens, refresh tokens, ID tokens, and server sessions✓✓

User Management

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
List usersRetrieve a paginated, searchable list of users✓✓
Get userFetch full profile details for a single user✓✓
Update userModify user profile fields (name, email, locale, org, roles, attributes, etc.)✓✓
Delete userPermanently remove a user account✓✓
User activationActivate or deactivate a user account to allow or block future sign-ins✓✓
Verification email resendSend a fresh verification email to an unverified user✓✓
Locked IP — listView IP addresses locked out for a user due to brute-force protection✓✓
Locked IP — unlockClear all locked IPs for a user✓✓
Consented apps — listView the apps a user has granted consent to✓✓
Consented apps — revokeRemove a user's consent for a specific app✓✓
Passkey managementList and remove passkeys registered to a user✓✓
MFA managementEnroll or remove email, OTP, and SMS MFA methods for a user✓✓
ImpersonationGenerate a token that allows an admin to act as another user✓✓

Role-Based Access Control (RBAC)

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Role CRUDCreate, read, update, and delete roles✓✓
Assign role to userGrant a role to a specific user✓✓
Remove role from userRevoke a role from a specific user✓✓
List users by roleRetrieve all users assigned to a specific role✓✓
Roles in JWTInclude the user's roles as a claim in issued access and ID tokens✓✓

Admin Panel Access Control

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Admin panel role gateRestrict admin panel sign-in to allowed roles; by default only super_admin can sign in✓
Custom admin permissionsAllow custom admin roles with scoped read/write access by resource plus optional impersonation and SAML-management privileges✓

Organizations

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Org CRUDCreate, read, update, and delete organizations✓✓
Multiple org membershipsAllow a user to belong to more than one organization at the same time✓✓
User org memberships — list/updateRetrieve and update the organizations a user belongs to✓✓
Active org — setSet a user's active organization from among their memberships✓✓
List org active usersRetrieve users who are currently active members of an organization✓✓
List all org usersRetrieve all users ever associated with an organization, including inactive members✓✓
Org public registrationAllow or block self-service registration for a specific organization✓✓✓✓
Branding-only org modeApply an org's branding during auth without adding the user as an org member✓✓✓✓
Org switch at sign-inLet users select which org to sign into when they belong to multiple orgs✓✓
Org in JWTInclude the user's active org as a claim in issued tokens✓✓

Organization Groups

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Org group CRUDCreate, read, update, and delete groups within an organization✓✓
Assign user to org groupAdd a user to an org group✓✓
Remove user from org groupRemove a user from an org group✓✓
Multiple org-group membershipsAllow a user to belong to more than one group within an organization✓✓
List users in org groupRetrieve or filter to all users belonging to a specific org group✓✓

User Attributes

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Attribute definition CRUDDefine custom fields to capture on users (text, boolean, etc.)✓✓
Attribute labels & validation localesLocalize attribute labels and validation notes per language✓✓
Collect attributes at sign-upRender optional or required custom attribute fields on the sign-up form✓✓
Attribute validation & uniquenessEnforce regex and unique-value rules for custom attributes during sign-up✓✓✓✓
Update attribute valuesAllow users to update their custom attribute values via the update_info policy✓
Attributes in JWTEmbed user attribute values as claims in issued tokens✓✓
Attributes in UserInfoReturn selected user attribute values from the /userinfo endpoint✓

Policies

Policies allow you to route users to specific auth flows without changing application logic. Trigger via the policy query parameter on the authorize URL or via the SDK loginRedirect helper.

PolicyDescriptionOAuth ServerS2SAdmin PanelEmbedded
sign_in_or_sign_upDefault flow — sign in or register✓
update_infoLet users update their profile information✓
change_passwordLet users change their password (requires ENABLE_PASSWORD_RESET=true)✓
change_emailLet users change their email address (requires ENABLE_EMAIL_VERIFICATION=true)✓
reset_mfaLet users reset their enrolled MFA method✓
change_orgLet users switch their active organization (requires ENABLE_ORG=true and the policy not be blocked)✓
manage_passkeyLet users add or remove passkeys (requires ALLOW_PASSKEY_ENROLLMENT=true)✓
manage_recovery_codeLet users view or regenerate their MFA recovery code (requires ENABLE_RECOVERY_CODE=true)✓
saml_sso_[idp_name]Initiate sign-in via a named SAML identity provider✓
oidc_sso_[provider_name]Initiate sign-in via a named OIDC provider✓
Blocked policiesDisable specific policies from being triggered via configuration✓

App & Scope Management

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
App CRUDRegister, read, update, activate/deactivate, and delete OAuth client applications (SPA or S2S)✓✓
Scope CRUDCreate, read, update, and delete OAuth scopes✓✓
Consent toggleEnable or disable the user consent screen globally✓
Scope localesAdd translated display names for scopes shown on the consent screen✓✓
App banners — manageCreate, localize, activate, and assign typed notification banners for an application✓✓
App banners — displayRetrieve active banners to display within the auth flow, with locale fallback support✓✓

Branding & Localization

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Company logoShow a custom logo on all hosted auth pages and emails✓
Email logoUse a separate logo specifically in transactional emails✓
Custom colors / themeOverride the primary and secondary brand colors on auth pages✓
Custom fonts / typographyOverride auth-page fonts and font asset URLs✓
LocalizationTranslate hosted auth UI strings and transactional emails into supported languages✓
Locale selectorShow a language picker on auth pages so users can switch locales✓
Terms of Service linkShow a link to your Terms of Service on auth pages✓
Privacy Policy linkShow a link to your Privacy Policy on auth pages✓
Email sender nameCustomize the sender name used in transactional emails✓✓
Org branding overrideApply per-org logo, email logo, colors, fonts, sender name, and legal links during org-branded auth flows✓✓✓

Security & Brute-Force Protection

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Login attempt lockoutLock a user's account after too many failed sign-in attempts✓
Unlock via password resetAutomatically unlock a locked account when the user resets their password✓
Password reset rate limitLimit how many password reset emails can be sent in a window✓
Email MFA rate limitLimit how many email MFA codes can be sent in a window✓
SMS MFA rate limitLimit how many SMS MFA codes can be sent in a window✓
Change-email rate limitLimit how many change-email verification emails can be sent in a window✓
View locked IPsInspect which IPs are currently locked for a user✓✓
Unlock IPsClear all IP locks for a user✓✓
Embedded auth origin allowlistRestrict which browser origins can call embedded auth APIs via EMBEDDED_AUTH_ORIGINS✓✓
Server-side sessionsEncrypted cookie sessions with configurable expiry for server-rendered flows✓

Logging & Monitoring

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
Per-log-type enablementEnable email, SMS, and sign-in logs independently✓
Email logs — viewList and inspect outbound email records✓✓
Email logs — deleteRemove email log entries older than a given date✓✓
SMS logs — viewList and inspect outbound SMS records✓✓
SMS logs — deleteRemove SMS log entries older than a given date✓✓
Sign-in logs — viewList and inspect user sign-in events and related client/IP metadata✓✓
Sign-in logs — deleteRemove sign-in log entries older than a given date✓✓
Configurable log levelsSet the log verbosity (silent, info, warn, error) for request logging✓

External Identity Providers

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
SAML IdP CRUDConfigure, activate/deactivate, and manage SAML 2.0 identity providers with attribute mapping (Node.js deployment)✓✓
OIDC provider configConfigure one or more named external OpenID Connect providers for sign-in buttons and policy-based routing✓
Social provider configEnable Google, Facebook, GitHub, Discord, and Apple via wrangler.toml✓

Email & SMS Delivery

FeatureDescriptionOAuth ServerS2SAdmin PanelEmbedded
SendGridSend transactional emails via SendGrid✓✓
MailgunSend transactional emails via Mailgun✓✓
BrevoSend transactional emails via Brevo✓✓
ResendSend transactional emails via Resend✓✓
PostmarkSend transactional emails via Postmark✓✓
SMTPSend transactional emails via any SMTP server (Node.js only)✓✓
Welcome emailReplace the verification email with a welcome email after sign-up when configured✓✓
Twilio SMSSend one-time codes via Twilio SMS✓✓
Dev mode routingRoute all outbound emails and SMS to a designated dev address for safe testing✓

SDKs & Client Libraries

SDKDescriptionNotable capabilities
React SDKReact hooks and provider for authentication flowsRedirect and popup login, policy/org/locale parameters, token refresh, user info helpers
Vue SDKVue composables and plugin for authentication flowsRedirect and popup login, token refresh, user info helpers
Angular SDKAngular service and provider for authentication flowsRedirect and popup login, token refresh, user info helpers
Web (vanilla JS) SDKFramework-agnostic JavaScript SDK for browser authentication flowsRedirect and popup login, auth-code exchange, token refresh, user info, logout helpers
Next.js SDKNext.js-optimized SDK with server and client helpersCookie storage, middleware protection, SSR session helpers, auth wrappers

Extensibility

Server-side hooks are async functions defined in server/src/hooks/ that execute at key points in the auth flow. They can be used to add custom business logic, logging, or side effects without modifying core server code.

HookTrigger point
preSignUp / postSignUpBefore and after a new user account is created
preSignIn / postSignInBefore and after a user successfully signs in
preTokenExchangeWithAuthCode / postTokenExchangeWithAuthCodeBefore and after an authorization code is exchanged for tokens
preTokenClientCredentials / postTokenClientCredentialsBefore and after a client credentials token is issued

Developer Tools

ToolingDescription
Swagger UI (S2S)Interactive API documentation for server-to-server endpoints
Swagger UI (Embedded)Interactive API documentation for embedded auth endpoints
Configuration info endpointPublic /info endpoint exposing feature flags and client configuration
Dashboard — config viewerAdmin panel page showing all active server configuration values and quick links to well-known, Swagger, and /info endpoints
Admin account self-serviceAdmin panel page for the signed-in administrator to update profile, change password/email, reset MFA, manage passkeys, and manage recovery codes

Deployment & Infrastructure

Production deployment choices only. Local development workflows, Docker setups, and CI/CD automation are intentionally omitted here.

Production optionDescription
Auth server — Cloudflare Workers + D1 + KVDefault managed production deployment on Cloudflare Workers using D1 (SQLite) for data and KV for secret/runtime storage
Auth server — Cloudflare Workers + PostgreSQLCloudflare Workers production deployment using nodejs_compat and PostgreSQL instead of the default D1-backed setup
Auth server — Cloudflare multi-environment rolloutSeparate Wrangler configs and Cloudflare resources can be used for staging, QA, demo, and production environments
Auth server — Self-hosted Node.js + PostgreSQL + RedisProduction deployment of the auth server as a Node.js application outside Cloudflare
Admin panel — Standard Next.js / Node.js hostingProduction deployment of the admin panel as a regular Next.js application in a Node-compatible hosting environment
Admin panel — Cloudflare WorkersProduction deployment of the admin panel to Cloudflare Workers via OpenNext; when both admin panel and auth server run on Cloudflare, custom domains or separate accounts may be required
Admin panel — VercelProduction deployment of the admin panel to Vercel with the documented environment-variable setup
Last Updated: 3/30/26, 2:07 AM
Contributors: Baozier