Bereket Engida 90127ff2a1 fix(core): make consumeOne and incrementOne optional on custom adapters
1.7.0 made both methods required on CustomAdapter and removed the
factory fallback, so a custom adapter written for 1.6 type-checks
against nothing and throws at request time on the first OTP, magic
link, password reset, or two-factor attempt.

Restore the fallbacks. consumeOne without a native implementation runs
findOne then an id-guarded deleteMany and wins only when exactly one
row was deleted. incrementOne runs a bounded compare-and-swap loop:
findOne, then updateMany guarded on the id and the counter values just
read, retried when a concurrent writer changed the row first. Both are
single guarded statements per attempt, so they stay atomic across
processes without transactions.
2026-09-03 22:14:45 -07:00
2026-09-02 15:17:26 +00:00
2026-08-04 18:34:05 -04:00
2026-09-03 06:36:37 +09:00
2026-04-23 19:50:25 +00:00
2026-04-23 19:50:25 +00:00

Better Auth

Better Auth is a framework-agnostic authentication (and authorization) framework for TypeScript. It provides a comprehensive set of features out of the box and includes a plugin ecosystem that simplifies adding advanced functionalities with minimal code in a short amount of time. Whether you need 2FA, multi-tenant support, or other complex features, it lets you focus on building your actual application instead of reinventing the wheel.

Why Better Auth

Authentication in the TypeScript ecosystem is a half-solved problem. Other open-source libraries often require a lot of additional code for anything beyond basic authentication. Rather than just pushing third-party services as the solution, I believe we can do better as a community—hence, Better Auth.

Contribution

Better Auth is a free and open source project licensed under the MIT License. You are free to do whatever you want with it.

You could help continuing its development by:

Security

If you discover a security vulnerability within Better Auth, please report it via GitHub Security Advisories.

All reports will be promptly addressed, and you'll be credited accordingly.

S
Description
No description provided
Readme
284 MiB
Latest
2026-04-16 05:05:30 -05:00
Languages
TypeScript 99.4%
CSS 0.3%
MDX 0.2%