From 5e7d62b1e22588a65013c7b98249b8706ddb0a46 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 24 Apr 2026 14:41:34 +0200 Subject: [PATCH] Make passkey login default --- resources/js/alpine/components/passkey-login.js | 13 +++++++++++++ resources/views/auth/login.blade.php | 2 +- .../views/partials/passkey-authenticate.blade.php | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/resources/js/alpine/components/passkey-login.js b/resources/js/alpine/components/passkey-login.js index 5a1f4848e..39b6a7100 100644 --- a/resources/js/alpine/components/passkey-login.js +++ b/resources/js/alpine/components/passkey-login.js @@ -5,6 +5,7 @@ Alpine.data('passkeyLogin', () => ({ busy: false, error: '', showCreateHint: false, + hasAutoPrompted: false, init() { this.supported = typeof window.browserSupportsWebAuthn === 'function' @@ -13,6 +14,18 @@ Alpine.data('passkeyLogin', () => ({ // If backend already reported an invalid passkey login attempt, // immediately show the "sign in first, then create passkey" guidance. this.showCreateHint = this.$el.dataset.serverPasskeyError === '1'; + + const shouldAutoPrompt = this.$el.dataset.autoPrompt === '1'; + if (this.supported && shouldAutoPrompt && !this.showCreateHint) { + window.requestAnimationFrame(() => { + if (this.hasAutoPrompted || this.busy) { + return; + } + + this.hasAutoPrompted = true; + void this.authenticate(); + }); + } }, async authenticate() { diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 7f3221e0c..fbc66fe18 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -43,7 +43,7 @@ @endif
- @include('partials.passkey-authenticate') + @include('partials.passkey-authenticate', ['autoPromptPasskey' => ! $errors->any()])