Releases Index
Better Auth

Better Auth

$npx @buildinternet/releases get better-auth
Recently Shipped10 releases · updated Oct 26, 2026

Shipped a FedCM account chooser for Google sign-in buttons and breaking profile-mapping changes across five social providers in the v1.8.0 betas.

Google sign-in buttons can offer a browser account chooser. On supported Chrome browsers, Google sign-in buttons use FedCM to let users pick an account from the browser's own chooser.

Profile mappings changed for five social providers (breaking). Update mappings before moving to the v1.8.0 beta:

  • Zoom: handle login types 11, 21, and 23 in exhaustive checks.
  • VK: user.phone arrives as a string, not a number.
  • Naver: handle omitted personal fields and supply an email when Naver shares none.
  • Kakao: handle a missing kakao_account.
  • Roblox: handle optional scoped fields, a null picture, and unknown custom claims.

Provider token endpoint auth gained options. The Vercel provider accepts dynamic OIDC tokens and private key JWT client assertions without replacing the built-in sign-in flow. Cloudflare added tokenEndpointAuth: { method }; tokenEndpointAuthMethod is deprecated but still supported.

ID token sign-in needs explicit client IDs (breaking). Providers without a clientId now need it set to every client ID your apps sign in with. Separately, the JWT plugin verifies tokens with the stored key's algorithm instead of the token header's, and warns when issuer or audience is missing.

OAuth and adapter fixes. OAuth proxy callbacks now run the standard callback checks, including issuer and ID token nonce validation. Type-only exports are no longer listed as values, so a bad value import fails type checking. PostgreSQL int8 columns stop producing repeated migration diffs.

Earlier: the Magic Link account-takeover advisory still requires upgrading servers that share verification storage together, requesting new Magic Links, and restarting pending OAuth/SAML sign-ins — no database migration. Device-code approval keeps the stricter assertStandaloneUse contract from beta.0.

OAuth profile types retyped across 16 providers

BreakingpreThis release15 fixesBug fixesAI-tallied from the release notes
better-auth · v1.8.0-beta.3

Profile types for Apple, Cognito, Discord, Dropbox, Facebook, GitHub, GitLab, Gumroad, Linear, Microsoft Entra ID, Notion, Patreon, PayPal, Railway, Slack, and Twitter(X) were reviewed against each provider's official resources and updated, with previously assumed fields now optional, nullable, or retyped. Custom profile mappings for these providers must be reviewed for fields that changed.

Read more ↗

Cloudflare tokenEndpointAuthMethod deprecated; Stripe SDK v23 supported

Breaking (minor)This release2 featuresNew capabilities1 enhancementImprovements to existing features1 fixBug fixesAI-tallied from the release notes
better-auth · v1.7.13

The Cloudflare provider gains tokenEndpointAuth: { method } while tokenEndpointAuthMethod is deprecated but still supported. Also adds Vercel token endpoint auth options (dynamic OIDC tokens, private key JWT client assertions), Stripe SDK v23 support in the Stripe plugin, and fixes type declarations so type-only exports are no longer listed as values.

Read more ↗

ID token sign-in needs clientId; JWT and OAuth checks tightened

This release10 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.12

ID token sign-in now rejects tokens from providers with no clientId, since audience cannot be checked, so every provider using ID token sign-in must set clientId. The JWT plugin now verifies tokens with the stored key's algorithm and warns when issuer or audience is missing, and OAuth proxy callbacks run the same issuer and nonce checks as standard callbacks.

Read more ↗

Postgres int8 migration diffs fixed; Twitch and Paybin ID token validation

This release1 enhancementImprovements to existing features9 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.11

Fixed repeated PostgreSQL migration diffs for int8 columns and database-backed rate limiting returning an excessively large X-Retry-After value. ID token signature and claim validation is fixed for Twitch and Paybin sign-in, and CIMD metadata refreshes no longer overwrite concurrent administrator changes to discovered clients.

Read more ↗

Stale customSession cookies cleared; failed resets keep links

This release4 featuresNew capabilities1 enhancementImprovements to existing features26 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.8

Stale cookies no longer persist after customSession sessions expire or are revoked, and failed password resets no longer consume reset links or OTPs before the new password is saved. Also fixed customSession treating session lookup errors as signed-out users, secondary-storage session failures leaving sign-ups and SSO sign-ins inconsistent, and ID token sign-in failures from up to 30 seconds of IdP clock difference.

Read more ↗

Critical Magic Link takeover patched; OAuth Proxy state fix

Breaking (minor)This release2 featuresNew capabilities9 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.7

Fixed a critical Magic Link account-takeover vulnerability and an OAuth Proxy bug that accepted sign-in state as a provider profile; upgrade Magic Link servers sharing verification storage together, request new Magic Links, and restart pending OAuth/SAML sign-ins, with no database migration required. Also fixed ID-token sign-in ignoring the social provider's disableSignUp setting, concurrent PostgreSQL requests exceeding database-backed rate limits, and missing JSON Content-Type headers on CAPTCHA and rate-limit errors.

Read more ↗

Vercel BotID captcha; over-length passwords now rejected

This release3 featuresNew capabilities9 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.6

Added Vercel BotID as a captcha provider for protected authentication routes and a bannedUserMessage function so sign-in errors can include details like the ban reason. Passwords over maxPasswordLength are now rejected with PASSWORD_TOO_LONG before hashing, and fixes address React hydration mismatches, overlapping auth-query races, OAuth Proxy social account linking, and adapter schema validation across Kysely, Prisma, D1, and SQLite.

Read more ↗

Expo session storage fixed; Vitest 5 supported

This release4 featuresNew capabilities3 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.4

Added experimental.instrumentation.enabled to disable OpenTelemetry span creation per auth instance, plus Vitest 5 support in test utilities. Fixed multibyte session data storage and stale sessions/corrupted cookies in Expo SecureStore.

Read more ↗

1.6 account schema restored; Cloudflare provider added

BreakingThis release5 featuresNew capabilities4 enhancementsImprovements to existing features18 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.3

The 1.6 account schema has been restored to avoid a disruptive backfill for existing users; those who already applied the 1.7 issuer schema should follow the upgrade guide for cleanup. Adds Cloudflare as a built-in social provider with client-secret and PKCE support, plus schema validation enabled by default during initialization that rejects auth requests on detected mismatches, and a new isPasswordCompromised check against Have I Been Pwned. Also fixes TOTP re-enrollment overwriting active authenticators, callback hook skips after proxied OAuth sign-ins, and Nuxt duplicate session requests.

Read more ↗

Stale ban dates cleared; redirect validation hardened

This release1 featureNew capabilities7 enhancementsImprovements to existing features11 fixesBug fixesAI-tallied from the release notes
better-auth · v1.7.2

Permanent user bans now clear expiration dates left by previous temporary bans, and validation for relative callback and redirect URLs was improved with path, query, and fragment support. Also fixed Cloudflare Workers async context loss, D1 programmatic migrations, and MyISAM index checks.

Read more ↗

Concurrent boot auth race fixed; SSO domain checks hardened

This release3 fixesBug fixesAI-tallied from the release notes
better-auth · v1.6.30

Concurrent cold-start requests no longer lose authentication or transaction context due to an async storage initialization race. SSO now requires both a verified provider domain and a verified stored user email for automatic organization assignment, and domain verification snapshots provider domains at request start to return 409 on mid-flight changes.

Read more ↗

OAuth and OIDC expansion; SCIM groups ship

This release5 featuresNew capabilitiesAI-tallied from the release notes
Blog · v1.7

Better Auth 1.7 adds a major OAuth and OpenID Connect expansion alongside updated MCP authorization, SCIM Groups with role projections, unified identity, and device authorization.

Read more ↗