geforkt von mirrored/vaultwarden
Fixes NFC Response for Mobile Login
Dieser Commit ist enthalten in:
Ursprung
aba9c28226
Commit
f344dbaad4
2 geänderte Dateien mit 15 neuen und 2 gelöschten Zeilen
|
@ -507,9 +507,9 @@ struct EnableYubikeyData {
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Debug)]
|
#[derive(Deserialize, Serialize, Debug)]
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
struct YubikeyMetadata {
|
pub struct YubikeyMetadata {
|
||||||
Keys: Vec<String>,
|
Keys: Vec<String>,
|
||||||
Nfc: bool,
|
pub Nfc: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
use yubico::Yubico;
|
use yubico::Yubico;
|
||||||
|
|
|
@ -269,6 +269,19 @@ fn _json_err_twofactor(providers: &[i32], user_uuid: &str, conn: &DbConn) -> Api
|
||||||
result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map);
|
result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Some(TwoFactorType::YubiKey) => {
|
||||||
|
let twofactor = match TwoFactor::find_by_user_and_type(user_uuid, TwoFactorType::YubiKey as i32, &conn) {
|
||||||
|
Some(tf) => tf,
|
||||||
|
None => err!("No YubiKey devices registered"),
|
||||||
|
};
|
||||||
|
|
||||||
|
let yubikey_metadata: two_factor::YubikeyMetadata = serde_json::from_str(&twofactor.data).expect("Can't parse Yubikey Metadata");
|
||||||
|
|
||||||
|
let mut map = JsonMap::new();
|
||||||
|
map.insert("Nfc".into(), Value::Bool(yubikey_metadata.Nfc));
|
||||||
|
result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map);
|
||||||
|
}
|
||||||
|
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Laden …
In neuem Issue referenzieren