Merge pull request #3602 from lioncash/json

verify_login: Make VerifyLogin exceptionless
This commit is contained in:
James Rowe 2018-04-04 23:39:28 -06:00 committed by GitHub
commit c57b0767af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -12,15 +12,19 @@ std::future<bool> VerifyLogin(std::string& username, std::string& token,
const std::string& endpoint_url, std::function<void()> func) { const std::string& endpoint_url, std::function<void()> func) {
auto get_func = [func, username](const std::string& reply) -> bool { auto get_func = [func, username](const std::string& reply) -> bool {
func(); func();
if (reply.empty())
if (reply.empty()) {
return false; 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<bool>(get_func, endpoint_url, false, username, token); return GetJson<bool>(get_func, endpoint_url, false, username, token);
} }