feat(external): permit login via email (magic link)

This commit is contained in:
Edouard Vanbelle
2026-06-02 13:45:37 +02:00
parent 458232354b
commit 64d081ad0b
8 changed files with 418 additions and 2 deletions
+36
View File
@@ -108,6 +108,42 @@
<span data-i18n="auth.sso_login">Sign in with SSO</span>
</button>
</div>
<!-- Sign-in by email link (magic-link). For users without a
password (external recipients invited via share, future
passwordless-only accounts). Always rendered — the
endpoint is anti-enumeration so showing it doesn't leak
anything; if SMTP isn't configured the server returns
503 and we show a generic "unavailable" message. -->
<div id="magic-link-section">
<div class="auth-divider">
<span data-i18n="auth.or">or</span>
</div>
<p class="auth-hint" data-i18n="auth.magicLinkHint">
No password? Enter your email and we'll send you a one-time sign-in link.
</p>
<form class="auth-form" id="magic-link-form">
<div class="auth-input-group">
<label class="auth-label" for="magic-link-email" data-i18n="auth.magicLinkEmailLabel">
Email address
</label>
<input
type="email"
id="magic-link-email"
class="auth-input"
name="email"
required
autocomplete="email"
placeholder="you@example.com"
data-i18n-placeholder="auth.magicLinkEmailPlaceholder"
>
</div>
<button type="submit" class="auth-button" id="magic-link-submit" data-i18n="auth.magicLinkSubmit">
Send sign-in link
</button>
</form>
<div id="magic-link-status" class="auth-status hidden" role="status"></div>
</div>
<div class="auth-toggle">
<span data-i18n="auth.no_account">Don't have an account?</span>