diff --git a/kiosk/src/server.rs b/kiosk/src/server.rs index aa73cc3..f74fe13 100644 --- a/kiosk/src/server.rs +++ b/kiosk/src/server.rs @@ -300,7 +300,7 @@ fn encrypt_key_file() -> PathBuf { #[derive(Deserialize)] struct ClaimResp { status: String, - kiosk_id: Option, + kiosk_id: Option, kiosk_key: Option, kiosk_name: Option, cluster_key: Option, @@ -329,7 +329,12 @@ pub fn poll_claim(server: &str, code: &str) -> (String, String) { let key = claim.kiosk_key.expect("missing kiosk_key"); let name = claim.kiosk_name.unwrap_or_else(|| "kiosk".into()); if let Some(ref id) = claim.kiosk_id { - crate::axiom::set_kiosk_id(id.clone()); + let id_str = match id { + serde_json::Value::String(s) => s.clone(), + serde_json::Value::Number(n) => n.to_string(), + other => other.to_string(), + }; + crate::axiom::set_kiosk_id(id_str); } crate::at_rest::write_encrypted(&key_file(), key.as_bytes()) .expect("failed to save kiosk key");