diff --git a/src/web_service/verify_login.cpp b/src/web_service/verify_login.cpp index 05082a3096..e7c61f8af7 100644 --- a/src/web_service/verify_login.cpp +++ b/src/web_service/verify_login.cpp @@ -12,15 +12,19 @@ std::future VerifyLogin(std::string& username, std::string& token, const std::string& endpoint_url, std::function func) { auto get_func = [func, username](const std::string& reply) -> bool { func(); - if (reply.empty()) + + if (reply.empty()) { return false; - nlohmann::json json = nlohmann::json::parse(reply); - std::string result; - try { - result = json["username"]; - } catch (const nlohmann::detail::out_of_range&) { } - return result == username; + + nlohmann::json json = nlohmann::json::parse(reply); + const auto iter = json.find("username"); + + if (iter == json.end()) { + return username.empty(); + } + + return username == *iter; }; return GetJson(get_func, endpoint_url, false, username, token); }