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
findSessionsto 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
$fetchand$storenot being exposed on the Solid client (#10444) - Improved Next.js performance by reusing the
next/headersimport 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 asyncSecureStoremethods, and should usesetItemAsync()when the write must be awaited.
For detailed changes, see CHANGELOG
@better-auth/redis-storage
Bug Fixes
- Fixed Redis storage to use
SCANinstead ofKEYSto 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
noTargeterror (#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
Source: original entry ↗
More from Better Auth
Follow Better Auth to get its new changes in your feed and email digest.
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.
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.
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.