Sourced from better-auth's releases.
v1.6.23
better-authFeatures
- Added Yandex as a social OAuth provider (#9138)
For detailed changes, see
CHANGELOG
@better-auth/drizzle-adapterBug Fixes
- Fixed affected row counting for D1 and postgres-js adapters (#10257)
For detailed changes, see
CHANGELOG
@better-auth/stripeBug Fixes
- Fixed organization subscription actions (cancel, upgrade, restore, and the billing portal) that could act on the wrong organization.
For detailed changes, see
CHANGELOG
authBug Fixes
- Fixed string default values not being properly escaped in the generated Drizzle schema (#10259)
For detailed changes, see
CHANGELOGContributors
Thanks to everyone who contributed to this release:
Full changelog:
v1.6.22...v1.6.23v1.6.22
better-authBug Fixes
- Fixed unproven credentials not being revoked during magic link and email OTP sign-in (#10239)
- Fixed server-side OAuth requests to refuse redirect responses instead of following them (#10241)
For detailed changes, see
CHANGELOG
... (truncated)
Sourced from better-auth's changelog.
1.6.23
Patch Changes
#9138
8581f97Thanks@vladflotsky! - Add a pre-configured Yandex provider helper for the generic OAuth plugin.Updated dependencies [
930b260]:1.6.22
Patch Changes
#10239
c06a56dThanks@gustavovalverde! - Magic-link and email-OTP sign-in now reset the credentials on an account whose email had never been confirmed. When verification resolves to such an account, any existing password on it is removed and its sessions are revoked before the user is signed in, so proven control of the mailbox is the source of truth for the account.If you signed up with email and password but first signed in through a magic link or email OTP rather than confirming the verification email, your password is cleared and you will need to set a new one through password reset.
#10240
3a035e9Thanks@gustavovalverde! - Add account-level lockout for two-factor verification. The attempt limit applies per account across sign-in challenges and across factors: TOTP, email-OTP, and backup codes share one counter, and a successful verification resets it.Enabled by default: an account locks for 15 minutes after 10 consecutive failed verifications, and locked attempts return
429with theACCOUNT_TEMPORARILY_LOCKEDerror code. Configure it withtwoFactor({ accountLockout: { enabled, maxFailedAttempts, durationSeconds } }).Run a database migration after upgrading: this adds
failedVerificationCountandlockedUntilcolumns to thetwoFactortable.Updated dependencies [
8bd43d9]:1.6.21
Patch Changes
#10212
e0762a1Thanks@bytaesu! - In root-mounted deployments, requests whose path does not start with the configuredbasePathnow return 404 instead of resolving to an endpoint.#10187
882cf9eThanks@ping-maxwell! - Admin permission changes and bans now take effect immediately for admin APIs, even when session cookie cache is enabled. Sensitive session checks also continue to work in stateless apps where signed cookies are the session record.#9939
f52e1abThanks@benpsnyder! - fixes a bug causing deviceAuthorization() throwing a ZodError at construction when called without a schema option#10196
b5bec19Thanks@Paola3stefania! - OAuth sign-up and account-link profile sync now ignore provider profile values for user fields markedinput: false. Input-allowed additional fields still persist frommapProfileToUser, and schema defaults still apply when OAuth creates a user. Apps that usedmapProfileToUserto fillinput: falsefields should set those fields in server-side provisioning code instead.
... (truncated)
9dfceee
chore: release v1.6.23 (#10260)8581f97
feat(oauth): add Yandex social provider (#9138)a90d061
chore: release v1.6.22 (#10245)3a035e9
fix(two-factor): add account-level verification lockout (#10240)c06a56d
fix: revoke unproven credentials on magic-link/email-OTP sign-in (#10239)414169d
chore: release v1.6.21 (#10184)f52e1ab
fix(device-authorization): make schema option optional
under Zod v4 (#9939)882cf9e
fix(admin): use authoritative session reads for authorization (#10187)b5bec19
fix(oauth): apply user input rules to provider profiles (#10196)471f81c
refactor: centralize request IP resolver in core (#10216)