better-authbaseURL resolution from request headers for direct auth.api calls (#9113)isMounted timing issues (#9078)storeBackupCodes storage strategy after verification (#7231)For detailed changes, see CHANGELOG
@better-auth/oauth-providerMigration: Replace
signIn.oauth2({ providerId })withsignIn.social({ provider }),oauth2.link()withlinkSocial(), and update your IdP callback URLs from/api/auth/oauth2/callback/:idto/api/auth/callback/:id. RemovegenericOAuthClient(),issuer, andrequireIssuerValidationfrom your config. Setpkce: falsefor providers that reject PKCE challenges.
customTokenResponseFields callback to inject custom fields into token endpoint responses, and hardened authorization code validation (#9118)at_hash claim to ID tokens to cryptographically bind them to their access tokens, per OIDC Core §3.1.3.6 (#9079)baseURL resolution to correctly handle trusted proxy headers, loopback addresses, and forwarded requests in plugin metadata helpers (#9131)For detailed changes, see CHANGELOG
@better-auth/ssocallbackUrl from samlConfig, and fixed SLO session matching (#9117)Migration: Remove
callbackUrlfromsamlConfig(the ACS URL is now auto-derived frombaseURLandproviderId) and update your IdP's ACS URL to/sso/saml2/sp/acs/:providerId. RemovedecryptionPvk,additionalParams,idpMetadata.entityURL, andidpMetadata.redirectURLfromSAMLConfigif present. ThespMetadatafield is now optional and can be removed.
samlify to 2.12.0, adding XPath injection protection and XXE prevention for SAML XML processing (#9121)For detailed changes, see CHANGELOG
@better-auth/cimd ✨@better-auth/cimd plugin for Client ID Metadata Document support, enabling URL-based client identification for MCP and dynamic client discovery flows (#9159)For package details, see README
@better-auth/stripeFor detailed changes, see CHANGELOG
Thanks to everyone who contributed to this release:
@bytaesu, @Byte-Biscuit, @gustavovalverde, @ping-maxwell
Full changelog: v1.7.0-beta.0...v1.7.0-beta.1
Fetched May 1, 2026