mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-30 05:12:25 +00:00
Adjust API handlers
This commit is contained in:
parent
2081b0e214
commit
8a2fce83e0
@ -33,7 +33,7 @@ EQ::Event::TaskScheduler task_runner;
|
|||||||
* @param email
|
* @param email
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
uint32 AccountManagement::CreateLocalLoginServerAccount(
|
int32 AccountManagement::CreateLocalLoginServerAccount(
|
||||||
std::string username,
|
std::string username,
|
||||||
std::string password,
|
std::string password,
|
||||||
std::string email
|
std::string email
|
||||||
@ -53,13 +53,12 @@ uint32 AccountManagement::CreateLocalLoginServerAccount(
|
|||||||
std::string db_loginserver = server.options.GetDefaultLoginServerName();
|
std::string db_loginserver = server.options.GetDefaultLoginServerName();
|
||||||
if (server.db->DoesLoginServerAccountExist(username, hash, db_loginserver, 1)) {
|
if (server.db->DoesLoginServerAccountExist(username, hash, db_loginserver, 1)) {
|
||||||
LogWarning(
|
LogWarning(
|
||||||
"Attempting to create local login account for user [{0}] login [{1}] db_id [{2}] but already exists!",
|
"Attempting to create local login account for user [{0}] login [{1}] but already exists!",
|
||||||
username,
|
username,
|
||||||
db_loginserver,
|
db_loginserver
|
||||||
db_id
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 created_account_id = server.db->CreateLoginAccount(username, hash, db_loginserver, email);
|
uint32 created_account_id = server.db->CreateLoginAccount(username, hash, db_loginserver, email);
|
||||||
@ -72,7 +71,7 @@ uint32 AccountManagement::CreateLocalLoginServerAccount(
|
|||||||
created_account_id
|
created_account_id
|
||||||
);
|
);
|
||||||
|
|
||||||
return created_account_id;
|
return (int32) created_account_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
LogError("Failed to create local login account for user [{0}]!", username);
|
LogError("Failed to create local login account for user [{0}]!", username);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ public:
|
|||||||
* @param email
|
* @param email
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
static uint32 CreateLocalLoginServerAccount(std::string username, std::string password, std::string email = "");
|
static int32 CreateLocalLoginServerAccount(std::string username, std::string password, std::string email = "");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param username
|
* @param username
|
||||||
|
|||||||
@ -267,6 +267,6 @@ namespace LoginserverCommandHandler {
|
|||||||
cmd("--password").str()
|
cmd("--password").str()
|
||||||
);
|
);
|
||||||
|
|
||||||
LogInfo("Credentials were {0}", res == true ? "accepted" : "not accepted");
|
LogInfo("Credentials were {0}", res ? "accepted" : "not accepted");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,7 +39,9 @@ namespace LoginserverWebserver {
|
|||||||
|
|
||||||
api.Get(
|
api.Get(
|
||||||
"/servers/list", [](const httplib::Request &request, httplib::Response &res) {
|
"/servers/list", [](const httplib::Request &request, httplib::Response &res) {
|
||||||
LoginserverWebserver::TokenManager::AuthCanRead(request, res);
|
if (!LoginserverWebserver::TokenManager::AuthCanRead(request, res)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Json::Value response;
|
Json::Value response;
|
||||||
auto iter = server.server_manager->getWorldServers().begin();
|
auto iter = server.server_manager->getWorldServers().begin();
|
||||||
@ -63,7 +65,10 @@ namespace LoginserverWebserver {
|
|||||||
|
|
||||||
api.Post(
|
api.Post(
|
||||||
"/account/create", [](const httplib::Request &request, httplib::Response &res) {
|
"/account/create", [](const httplib::Request &request, httplib::Response &res) {
|
||||||
LoginserverWebserver::TokenManager::AuthCanWrite(request, res);
|
if (!LoginserverWebserver::TokenManager::AuthCanWrite(request, res)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||||
std::string username = request_body.get("username", "").asString();
|
std::string username = request_body.get("username", "").asString();
|
||||||
std::string password = request_body.get("password", "").asString();
|
std::string password = request_body.get("password", "").asString();
|
||||||
@ -76,12 +81,16 @@ namespace LoginserverWebserver {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool account_created = AccountManagement::CreateLocalLoginServerAccount(username, password, email);
|
int32 account_created_id = AccountManagement::CreateLocalLoginServerAccount(username, password, email);
|
||||||
if (account_created) {
|
if (account_created_id > 0) {
|
||||||
response["message"] = "Account created successfully!";
|
response["message"] = "Account created successfully!";
|
||||||
|
response["data"]["account_id"] = account_created_id;
|
||||||
|
}
|
||||||
|
else if (account_created_id == -1) {
|
||||||
|
response["error"] = "Account already exists!";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
response["message"] = "Account failed to create!";
|
response["error"] = "Account failed to create!";
|
||||||
}
|
}
|
||||||
|
|
||||||
LoginserverWebserver::SendResponse(response, res);
|
LoginserverWebserver::SendResponse(response, res);
|
||||||
@ -90,7 +99,10 @@ namespace LoginserverWebserver {
|
|||||||
|
|
||||||
api.Post(
|
api.Post(
|
||||||
"/account/credentials/validate/local", [](const httplib::Request &request, httplib::Response &res) {
|
"/account/credentials/validate/local", [](const httplib::Request &request, httplib::Response &res) {
|
||||||
LoginserverWebserver::TokenManager::AuthCanRead(request, res);
|
if (!LoginserverWebserver::TokenManager::AuthCanRead(request, res)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||||
std::string username = request_body.get("username", "").asString();
|
std::string username = request_body.get("username", "").asString();
|
||||||
std::string password = request_body.get("password", "").asString();
|
std::string password = request_body.get("password", "").asString();
|
||||||
@ -120,7 +132,10 @@ namespace LoginserverWebserver {
|
|||||||
|
|
||||||
api.Post(
|
api.Post(
|
||||||
"/account/credentials/update/local", [](const httplib::Request &request, httplib::Response &res) {
|
"/account/credentials/update/local", [](const httplib::Request &request, httplib::Response &res) {
|
||||||
LoginserverWebserver::TokenManager::AuthCanWrite(request, res);
|
if (!LoginserverWebserver::TokenManager::AuthCanWrite(request, res)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||||
std::string username = request_body.get("username", "").asString();
|
std::string username = request_body.get("username", "").asString();
|
||||||
std::string password = request_body.get("password", "").asString();
|
std::string password = request_body.get("password", "").asString();
|
||||||
@ -161,7 +176,10 @@ namespace LoginserverWebserver {
|
|||||||
|
|
||||||
api.Post(
|
api.Post(
|
||||||
"/account/credentials/validate/external", [](const httplib::Request &request, httplib::Response &res) {
|
"/account/credentials/validate/external", [](const httplib::Request &request, httplib::Response &res) {
|
||||||
LoginserverWebserver::TokenManager::AuthCanRead(request, res);
|
if (!LoginserverWebserver::TokenManager::AuthCanRead(request, res)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||||
std::string username = request_body.get("username", "").asString();
|
std::string username = request_body.get("username", "").asString();
|
||||||
std::string password = request_body.get("password", "").asString();
|
std::string password = request_body.get("password", "").asString();
|
||||||
@ -233,7 +251,7 @@ namespace LoginserverWebserver {
|
|||||||
* @param request
|
* @param request
|
||||||
* @param res
|
* @param res
|
||||||
*/
|
*/
|
||||||
void LoginserverWebserver::TokenManager::AuthCanRead(const httplib::Request &request, httplib::Response &res)
|
bool LoginserverWebserver::TokenManager::AuthCanRead(const httplib::Request &request, httplib::Response &res)
|
||||||
{
|
{
|
||||||
LoginserverWebserver::TokenManager::token_data
|
LoginserverWebserver::TokenManager::token_data
|
||||||
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
||||||
@ -252,15 +270,17 @@ namespace LoginserverWebserver {
|
|||||||
user_token.user_agent
|
user_token.user_agent
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param request
|
* @param request
|
||||||
* @param res
|
* @param res
|
||||||
*/
|
*/
|
||||||
void LoginserverWebserver::TokenManager::AuthCanWrite(const httplib::Request &request, httplib::Response &res)
|
bool LoginserverWebserver::TokenManager::AuthCanWrite(const httplib::Request &request, httplib::Response &res)
|
||||||
{
|
{
|
||||||
LoginserverWebserver::TokenManager::token_data
|
LoginserverWebserver::TokenManager::token_data
|
||||||
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
||||||
@ -279,8 +299,10 @@ namespace LoginserverWebserver {
|
|||||||
user_token.user_agent
|
user_token.user_agent
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -46,8 +46,8 @@ namespace LoginserverWebserver {
|
|||||||
static bool TokenExists(const std::string &token);
|
static bool TokenExists(const std::string &token);
|
||||||
token_data GetToken(const std::string &token);
|
token_data GetToken(const std::string &token);
|
||||||
static token_data CheckApiAuthorizationHeaders(const httplib::Request &request);
|
static token_data CheckApiAuthorizationHeaders(const httplib::Request &request);
|
||||||
static void AuthCanRead(const httplib::Request &request, httplib::Response &res);
|
static bool AuthCanRead(const httplib::Request &request, httplib::Response &res);
|
||||||
static void AuthCanWrite(const httplib::Request &request, httplib::Response &res);
|
static bool AuthCanWrite(const httplib::Request &request, httplib::Response &res);
|
||||||
};
|
};
|
||||||
|
|
||||||
void RegisterRoutes(httplib::Server &api);
|
void RegisterRoutes(httplib::Server &api);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user