From 5a4e95e90160210f40c9a2cfae054b4e6bbbdb05 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 11 May 2020 13:40:03 +0800 Subject: [PATCH] add logincheck --- cpp/utils.cc | 17 +++++++++++++++++ cpp/utils.h | 1 + 2 files changed, 18 insertions(+) diff --git a/cpp/utils.cc b/cpp/utils.cc index c3933f6..38255a2 100644 --- a/cpp/utils.cc +++ b/cpp/utils.cc @@ -4,6 +4,7 @@ #include #include #include +#include #include @@ -308,6 +309,22 @@ namespace f8 return true; } + bool LoginCheck(const std::string& accountid, const std::string& sessionid) + { + std::vector strings; + a8::Split(sessionid, strings, '_'); + if (strings.size() < 4) { + return false; + } + if (IsOnlineEnv()) { + //session_createtime account_registertime md51 md52 + std::string md5_str = accountid + "f3a6a9a5-217a-4079-ab99-b5d69b8212be" + + strings[1] + strings[0]; + return a8::openssl::md5(md5_str) == strings[2]; + } + return true; + } + int ExtractGameIdFromAccountId(const std::string& accountid) { std::vector strings; diff --git a/cpp/utils.h b/cpp/utils.h index e548ee1..fddb4b4 100644 --- a/cpp/utils.h +++ b/cpp/utils.h @@ -109,6 +109,7 @@ namespace f8 bool CheckRegisterTimeInSessionId(const std::string& accountid, const std::string& sessionid); time_t ExtractRegisterTimeFromSessionId(const std::string& sessionid); bool IsValidSessionId(const std::string& accountid, const std::string& sessionid); + bool LoginCheck(const std::string& accountid, const std::string& sessionid); int ExtractGameIdFromAccountId(const std::string& accountid); int ExtractChannelIdFromAccountId(const std::string& accountid);