16 Commits

Author SHA1 Message Date
Dan Harrin 2fb90db538 docs: document custom MFA providers (#20422) 2026-08-30 18:58:34 +01:00
Dan Harrin 7f3e6ffbeb security: Prevent 2FA concurrent recovery code reuse (#19891)
* security: 2FA concurrent recovery code reuse

* Update AppAuthentication.php

* Merge commit from fork

* security: also serialise recovery code verification on SQLite

The `lockForUpdate()` row lock does not exist on SQLite — Laravel's SQLite
query grammar compiles `compileLockForUpdate()` to an empty string — so the
transaction provides no mutual exclusion there. Two concurrent requests still
both read the full recovery code set before either commits, and the losing
write resurrects the just-consumed code.

Verified against a true `pcntl_fork()` race on v5.6.4: the transaction-only
fix is bypassed 6/6 runs on SQLite while holding 7/7 on MySQL.

Wrap the transaction in a per-user `Cache::lock()` so verification is
serialised regardless of database driver. The DB transaction and row lock are
kept for drivers that support them. Re-verified: combined fix holds 6/6 on
SQLite and 5/5 on MySQL.

* cleanup

---------

Co-authored-by: StarPlatinu <thanhnolove21@gmail.com>
Co-authored-by: Dan Harrin <git@danharrin.com>

---------

Co-authored-by: ThanhVu <72287279+StarPlatinu@users.noreply.github.com>
Co-authored-by: StarPlatinu <thanhnolove21@gmail.com>
2026-05-21 18:47:17 +01:00
Dan Harrin 09aaea6d5d docs: More screenshots (#19548)
* screenshots

* fix cut off sidebar

* Screenshots

* Screenshots

* retake

* fix loading data issue

* retake

* screenshots

* Update custom-toolbar.jpg

* retake

* ss

* retake

* ss

* ss

* ss

* ss

* ss

* ss

* ss

* ss

* Update dashboard.jpg

* ss

* Update openable.jpg

* ss

* ss

* ss

* Update database.sqlite

* Update database.sqlite

* ss

* ss

* ss

* ss

* ss

* ss

* clean up

* cs
2026-03-23 08:29:46 +00:00
Kayke Galdiano b939d885dd Fix typo in email code expiration section (#18970)
Signed-off-by: Kayke Galdiano <kaykegaldiano@gmail.com>
2026-01-15 15:51:27 +00:00
Ryan Chandler a19335ab45 [4.x] Introduce traits for easier implements of 2FA (#18886)
* chore: fix code style

* Introduce traits for easier implementation of 2FA

* clean up

* Update InteractsWithAppAuthenticationRecovery.php

* Update InteractsWithAppAuthenticationRecovery.php

* Update InteractsWithAppAuthenticationRecovery.php

* Update InteractsWithAppAuthentication.php

---------

Co-authored-by: ryangjchandler <ryangjchandler@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-01-07 12:29:16 +00:00
Dan Harrin c6cf3ee11e consistency 2025-07-22 09:54:45 +01:00
Zoltán Tamás Szabó e3b52e517a Refactor model casts to use method syntax for improved clarity and consistency 2025-07-21 20:08:25 +02:00
Dan Harrin e6336d5c06 Update 02-multi-factor-authentication.md 2025-06-15 16:25:35 +01:00
Ching Cheng Kang dc046677ca Update 02-multi-factor-authentication.md 2025-06-15 12:36:26 +08:00
Dan Harrin 4bc642dde7 Refactor email authentication to issue codes randomly instead of TOTPs 2025-05-07 09:42:57 +01:00
Dan Harrin 687def3750 Remove hasAppAuthentication() method 2025-05-06 19:38:49 +01:00
Dan Harrin 6de68e68e9 Rename Google two factor auth to app auth 2025-04-29 20:18:08 +01:00
Dan Harrin f6ce6f60d2 rename email code auth 2025-04-29 20:07:35 +01:00
Dan Harrin 28f90d59c5 multi factor tweaks and docs 2025-04-16 20:51:39 +01:00
Dan Harrin 01a9dd71f3 docs 2025-04-14 21:57:54 +01:00
Dan Harrin 98ece4c6c6 reorganize docs 2025-04-14 21:32:39 +01:00