diff options
author | B3n30 <[email protected]> | 2017-09-19 03:18:26 +0200 |
---|---|---|
committer | bunnei <[email protected]> | 2017-09-18 21:18:26 -0400 |
commit | 28c726f20545744a3052a3e8a0a3bf5ff95a5042 (patch) | |
tree | 496b81a9d2cefbdb3ac2ed12c6525ecd72610c14 /src/web_service/verify_login.cpp | |
parent | 255fd8768d48f12cbbb18601f54dbc5c344407fb (diff) | |
download | yuzu-android-28c726f20545744a3052a3e8a0a3bf5ff95a5042.tar.gz yuzu-android-28c726f20545744a3052a3e8a0a3bf5ff95a5042.zip |
WebService: Verify username and token (#2930)
* WebService: Verify username and token; Log errors in PostJson
* Fixup: added docstrings to the functions
* Webservice: Added Icons to the verification, imrpved error detection in cpr, fixup nits
* fixup: fmt warning
Diffstat (limited to 'src/web_service/verify_login.cpp')
-rw-r--r-- | src/web_service/verify_login.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/web_service/verify_login.cpp b/src/web_service/verify_login.cpp new file mode 100644 index 000000000..1bc3b5afe --- /dev/null +++ b/src/web_service/verify_login.cpp @@ -0,0 +1,28 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include <json.hpp> +#include "web_service/verify_login.h" +#include "web_service/web_backend.h" + +namespace WebService { + +std::future<bool> VerifyLogin(std::string& username, std::string& token, + const std::string& endpoint_url, std::function<void()> func) { + auto get_func = [func, username](const std::string& reply) -> bool { + func(); + 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; + }; + return GetJson<bool>(get_func, endpoint_url, false, username, token); +} + +} // namespace WebService |