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
This commit is contained in:
parent
255fd8768d
commit
28c726f205
18 changed files with 322 additions and 38 deletions
28
src/web_service/verify_login.cpp
Normal file
28
src/web_service/verify_login.cpp
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue