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:
B3n30 2017-09-19 03:18:26 +02:00 committed by bunnei
parent 255fd8768d
commit 28c726f205
18 changed files with 322 additions and 38 deletions

View file

@ -133,6 +133,7 @@ struct Values {
// WebService
bool enable_telemetry;
std::string telemetry_endpoint_url;
std::string verify_endpoint_url;
std::string citra_username;
std::string citra_token;
} extern values;

View file

@ -15,6 +15,7 @@
#ifdef ENABLE_WEB_SERVICE
#include "web_service/telemetry_json.h"
#include "web_service/verify_login.h"
#endif
namespace Core {
@ -75,6 +76,17 @@ u64 RegenerateTelemetryId() {
return new_telemetry_id;
}
std::future<bool> VerifyLogin(std::string username, std::string token, std::function<void()> func) {
#ifdef ENABLE_WEB_SERVICE
return WebService::VerifyLogin(username, token, Settings::values.verify_endpoint_url, func);
#else
return std::async(std::launch::async, [func{std::move(func)}]() {
func();
return false;
});
#endif
}
TelemetrySession::TelemetrySession() {
#ifdef ENABLE_WEB_SERVICE
if (Settings::values.enable_telemetry) {

View file

@ -4,6 +4,7 @@
#pragma once
#include <future>
#include <memory>
#include "common/telemetry.h"
@ -47,4 +48,13 @@ u64 GetTelemetryId();
*/
u64 RegenerateTelemetryId();
/**
* Verifies the username and token.
* @param username Citra username to use for authentication.
* @param token Citra token to use for authentication.
* @param func A function that gets exectued when the verification is finished
* @returns Future with bool indicating whether the verification succeeded
*/
std::future<bool> VerifyLogin(std::string username, std::string token, std::function<void()> func);
} // namespace Core