Browse Source
WebService: Verify username and token (#2930)
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 warningnce_cpp
committed by
bunnei
18 changed files with 322 additions and 38 deletions
-
BINdist/icons/checked.png
-
BINdist/icons/failed.png
-
6dist/icons/icons.qrc
-
2src/citra/config.cpp
-
2src/citra/default_ini.h
-
5src/citra_qt/CMakeLists.txt
-
6src/citra_qt/configuration/config.cpp
-
58src/citra_qt/configuration/configure_web.cpp
-
12src/citra_qt/configuration/configure_web.h
-
75src/citra_qt/configuration/configure_web.ui
-
1src/core/settings.h
-
12src/core/telemetry_session.cpp
-
10src/core/telemetry_session.h
-
2src/web_service/CMakeLists.txt
-
28src/web_service/verify_login.cpp
-
24src/web_service/verify_login.h
-
101src/web_service/web_backend.cpp
-
16src/web_service/web_backend.h
|
After Width: 16 | Height: 16 | Size: 451 B |
|
After Width: 16 | Height: 16 | Size: 428 B |
@ -0,0 +1,6 @@ |
|||
<RCC> |
|||
<qresource prefix="icons"> |
|||
<file>checked.png</file> |
|||
<file>failed.png</file> |
|||
</qresource> |
|||
</RCC> |
|||
@ -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
|
|||
@ -0,0 +1,24 @@ |
|||
// Copyright 2017 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <functional> |
|||
#include <future> |
|||
#include <string> |
|||
|
|||
namespace WebService { |
|||
|
|||
/** |
|||
* Checks if username and token is valid |
|||
* @param username Citra username to use for authentication. |
|||
* @param token Citra token to use for authentication. |
|||
* @param endpoint_url URL of the services.citra-emu.org endpoint. |
|||
* @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, |
|||
const std::string& endpoint_url, std::function<void()> func); |
|||
|
|||
} // namespace WebService |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue