mirror of
https://github.com/dani-garcia/vaultwarden.wiki.git
synced 2026-11-15 19:25:56 +02:00
Add login with passkey
Co-authored-by: zUnixorn <77864446+zUnixorn@users.noreply.github.com> Co-authored-by: a15355447898a <62456287+a15355447898a@users.noreply.github.com> Co-authored-by: Sammy ETUR <50653464+samos667@users.noreply.github.com> Co-authored-by: Zaid Marji <91486926+zaid-marji@users.noreply.github.com> Co-authored-by: Raphaël Roumezin <94066559+RaphaelRoumezin@users.noreply.github.com> Co-authored-by: Keng <39216134+kengzzzz@users.noreply.github.com> Co-authored-by: Akhil Babel <335565203+akh1lb@users.noreply.github.com>
This commit is contained in:
23 files changed
+1060
-30
No files matched your search
@@ -747,6 +747,11 @@ make_config! {
|
||||
/// TOTP codes of the previous and next 30 seconds will be invalid.
|
||||
authenticator_disable_time_drift: bool, true, def, false;
|
||||
|
||||
/// Passkey login extra origins |> Origins that may log in with a passkey besides the vault and the official Chromium
|
||||
/// extensions (Chrome Web Store, Edge and Opera add-ons), separated by commas. For Bitwarden clients with an origin
|
||||
/// of their own, such as a self-built extension (`chrome-extension://<id>`) or an app (`android:apk-key-hash:<hash>`).
|
||||
passkey_login_extra_origins: String, true, def, String::new();
|
||||
|
||||
/// Customize the enabled feature flags on the clients |> This is a comma separated list of feature flags to enable.
|
||||
experimental_client_feature_flags: String, false, def, String::new();
|
||||
|
||||
@@ -1065,6 +1070,18 @@ fn validate_config(cfg: &ConfigItems, on_update: bool) -> Result<(), Error> {
|
||||
err!("`SIGNUPS_DOMAINS_WHITELIST` contains empty tokens");
|
||||
}
|
||||
|
||||
for origin in cfg.passkey_login_extra_origins.split(',').map(str::trim).filter(|o| !o.is_empty()) {
|
||||
// A scheme and host (and port), or an opaque one for apps, without a path, query or fragment
|
||||
let valid = Url::parse(origin.trim_end_matches('/')).is_ok_and(|url| {
|
||||
url.query().is_none()
|
||||
&& url.fragment().is_none()
|
||||
&& (url.cannot_be_a_base() || url.path() == "/" || url.path().is_empty())
|
||||
});
|
||||
if !valid {
|
||||
err!(format!("`PASSKEY_LOGIN_EXTRA_ORIGINS` contains an invalid origin: {origin}"));
|
||||
}
|
||||
}
|
||||
|
||||
let org_creation_users = cfg.org_creation_users.trim().to_lowercase();
|
||||
if !(org_creation_users.is_empty() || org_creation_users == "all" || org_creation_users == "none")
|
||||
&& org_creation_users.split(',').any(|u| !u.contains('@'))
|
||||
|
||||
Reference in new issue
Block a user