megachangelog
Fix1.7.0-rc.4

v1.7.0-rc.4 release with OAuth fixes and security improvements

This release includes numerous bug fixes across authentication flows including PKCE and Apple OAuth, session handling improvements, email OTP security enhancements, and a breaking change for Better Auth Expo that switches to async secure storage to prevent iOS Keychain crashes. Also introduces a placeholder email utility and fixes performance issues in Next.js integration.

better-auth

Features

  • Added a placeholder email utility for generating temporary email addresses (#10576)

Bug Fixes

  • Fixed sessions not being cleaned up when a user is deleted (#10520)
  • Fixed missing PKCE challenge in Apple OAuth flows (#10294)
  • Fixed duplicate in-flight session requests when React retries a suspended component (#10676)
  • Fixed cookie cache to work independently of the JWT plugin internals (#10666)
  • Fixed findSessions to skip null-parsed session tokens instead of returning early (#10580)
  • Fixed missing verification type when sending email OTP during sign-up (#10608)
  • Fixed OTP being cleared after password validation errors in email OTP flows (#10552)
  • Fixed email OTP to verify the code before revealing whether the email exists (#10605)
  • Fixed client plugin type inference when using jwtClient (#10513)
  • Fixed JWT signing to use the transaction-scoped adapter (#10623)
  • Fixed Apple user data being lost when using the OAuth proxy (#10599)
  • Fixed Google One Tap to enforce provider signup restrictions (#10479)
  • Fixed client plugin type inference when using oneTapClient (#10635)
  • Fixed rate limit database cleanup to be awaited by default (#10619)
  • Fixed $fetch and $store not being exposed on the Solid client (#10444)
  • Improved Next.js performance by reusing the next/headers import promise in production (#10467)

For detailed changes, see CHANGELOG

@better-auth/expo

❗ Breaking Changes

  • Switched to async secure storage access to prevent crashes when iOS Keychain is unavailable (#10438)

Migration: getCookie() now returns a Promise. Custom storage implementations must provide both sync and async SecureStore methods, and should use setItemAsync() when the write must be awaited.

For detailed changes, see CHANGELOG

@better-auth/redis-storage

Bug Fixes

  • Fixed Redis storage to use SCAN instead of KEYS to avoid blocking the server (#10507)

For detailed changes, see CHANGELOG

@better-auth/scim

Bug Fixes

  • Fixed SCIM PATCH to create filtered attribute values when no target matches, instead of rejecting with a noTarget error (#10682)

For detailed changes, see CHANGELOG

auth

Bug Fixes

  • Fixed issuer-scoped account identities being overwritten during OAuth flows (#10668)

For detailed changes, see CHANGELOG

Contributors

Thanks to everyone who contributed to this release:

@birkskyum, @bytaesu, @Emmaccen, @gustavovalverde, @jashkarangiya, @jeroenvandermerwe, @jlucaso1, @jsj, @krish-vachhani, @mrosberghaus, @XXMOHAMED012

Full changelog: v1.7.0-rc.3...v1.7.0-rc.4

oauthsessionsemail-otpsecuritybug-fixes

Source: original entry ↗

More from Better Auth

Follow Better Auth to get its new changes in your feed and email digest.

Fix1.7.11

v1.7.11 - Multiple bug fixes across auth packages

Patch release addressing multiple stability issues including PostgreSQL migration diffs, rate limiting header values, OAuth provider schema validation, and social account linking with ID tokens across better-auth packages.

authbugfixoauthdatabasestability
Announcement1.8.0-beta.1

v1.8.0-beta.1 Release

Better Auth v1.8.0-beta.1 includes a browser account chooser for Google sign-in using FedCM, fixes for preserving required fields in Drizzle adapter v2 schemas, and support for client_credentials scopes in OAuth provider client registration.

authoauthgoogledrizzlefedcm
Breaking1.8.0-beta.0

v1.8.0-beta.0 Release

Major update to Better Auth with significant breaking changes to device-code approval flows, OAuth token handling, and consent recording. Includes new CIBA support, OAuth token exchange, and improved polling behavior for concurrent requests.

oauthbreakingdevice-authcibasecurity
See all Better Auth changes →