|
@@ -30,6 +30,7 @@ void CManageNetWork::init()
|
|
|
SNotifyCenter::getSingleton().addEvent(EVENTID(EventNodeList));
|
|
|
SNotifyCenter::getSingleton().addEvent(EVENTID(EventVerions));
|
|
|
SNotifyCenter::getSingleton().addEvent(EVENTID(EventSysconfig));
|
|
|
+ SNotifyCenter::getSingleton().addEvent(EVENTID(EventAUTH));
|
|
|
|
|
|
|
|
|
if (!m_base_curl)
|
|
@@ -115,6 +116,28 @@ void CManageNetWork::GetSysConfig()
|
|
|
m_Asyntask.AddTask(&CManageNetWork::ThreadFun_Sys_Config, this, (LPARAM)m_base_curl);
|
|
|
}
|
|
|
|
|
|
+void CManageNetWork::Auth()
|
|
|
+{
|
|
|
+ if (!m_base_curl)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ m_Asyntask.AddTask(&CManageNetWork::ThreadFun_Auth, this, (LPARAM)m_base_curl);
|
|
|
+}
|
|
|
+
|
|
|
+void CManageNetWork::Reg(LPCSTR username, LPCSTR password)
|
|
|
+{
|
|
|
+ if (!m_base_curl)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this->m_username = username;
|
|
|
+ this->m_password = password;
|
|
|
+
|
|
|
+ m_Asyntask.AddTask(&CManageNetWork::ThreadFun_Reg, this, (LPARAM)m_base_curl);
|
|
|
+}
|
|
|
+
|
|
|
void CManageNetWork::ThreadFun_login(LPARAM lParam)
|
|
|
{
|
|
|
IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
|
|
@@ -338,6 +361,147 @@ void CManageNetWork::ThreadFun_Node_Config(LPARAM lParam)
|
|
|
pEvt->Release();
|
|
|
}
|
|
|
|
|
|
+void CManageNetWork::ThreadFun_Auth(LPARAM lParam)
|
|
|
+{
|
|
|
+ IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
|
|
|
+ int code = 200;
|
|
|
+ SStringW msg = L"";
|
|
|
+ std::string data;
|
|
|
+ int count = 0;
|
|
|
+ do
|
|
|
+ {
|
|
|
+ HTTPRET http_status = m_base_curl->Auth(data);
|
|
|
+ if (http_status == HTTPRET::http_f) {
|
|
|
+ code = 0;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ auto status = CApp::getSingletonPtr()->GetUserinfo()->authInit(data);
|
|
|
+ if (status != -1) {
|
|
|
+ code = status;
|
|
|
+ msg = CApp::getSingletonPtr()->GetUserinfo()->GetLastErrorW();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (http_status == HTTPRET::http_user_transfer_enable)
|
|
|
+ {
|
|
|
+ code = 0;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ break;
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
+ if (m_base_curl->GetHttpStatus() == 401)
|
|
|
+ {
|
|
|
+ if (count >= 3)
|
|
|
+ {
|
|
|
+ code = m_base_curl->GetHttpStatus();
|
|
|
+ msg = L"鉴权失败,需要重新登录";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ http_status = m_base_curl->PostLogin(this->m_username, this->m_password, data);
|
|
|
+ if (http_status == HTTPRET::http_f) {
|
|
|
+ code = m_base_curl->GetHttpStatus();
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (!CApp::getSingletonPtr()->GetUserinfo()->Init(data))
|
|
|
+ {
|
|
|
+ code = -1;
|
|
|
+ msg = CApp::getSingletonPtr()->GetServerList()->GetLastErrorW();
|
|
|
+ }
|
|
|
+
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ code == 200;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ } while (m_base_curl);
|
|
|
+
|
|
|
+ EventAUTH* pEvt = new EventAUTH(nullptr);
|
|
|
+ pEvt->status = code;
|
|
|
+ pEvt->msg = msg;
|
|
|
+ SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
|
|
+ pEvt->Release();
|
|
|
+}
|
|
|
+
|
|
|
+void CManageNetWork::ThreadFun_Reg(LPARAM lParam)
|
|
|
+{
|
|
|
+ IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
|
|
|
+ int code = 200;
|
|
|
+ SStringW msg = L"";
|
|
|
+ std::string data;
|
|
|
+
|
|
|
+ HTTPRET httpstatus = m_base_curl->GetSysConfigFromUser(this->m_username, this->m_password, data);
|
|
|
+ if (httpstatus == HTTPRET::http_user_expired_at)
|
|
|
+ {
|
|
|
+ code = -2;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (httpstatus == HTTPRET::http_user_transfer_enable) {
|
|
|
+ code = -3;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ }
|
|
|
+ else if (httpstatus == HTTPRET::http_f) {
|
|
|
+ code = 0;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!data.empty())
|
|
|
+ {
|
|
|
+ if (!CApp::getSingletonPtr()->GetSysconfig()->Inti(data)) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ data.empty();
|
|
|
+
|
|
|
+ httpstatus = m_base_curl->PostReg(this->m_username, this->m_password, data);
|
|
|
+ if (httpstatus == HTTPRET::http_user_expired_at)
|
|
|
+ {
|
|
|
+ code = -2;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (httpstatus == HTTPRET::http_user_transfer_enable) {
|
|
|
+ code = -3;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ }
|
|
|
+ else if (httpstatus == HTTPRET::http_f) {
|
|
|
+ code = 0;
|
|
|
+ msg = m_base_curl->GetLastErrorW();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!data.empty())
|
|
|
+ {
|
|
|
+ if (!CApp::getSingletonPtr()->GetUserinfo()->Init(data))
|
|
|
+ {
|
|
|
+ code = -1;
|
|
|
+ msg = CApp::getSingletonPtr()->GetUserinfo()->GetLastErrorW();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ DataToFile();
|
|
|
+
|
|
|
+ EventLogin* pEvt = new EventLogin(nullptr);
|
|
|
+ pEvt->status = code;
|
|
|
+ pEvt->msg = msg;
|
|
|
+ SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
|
|
+ pEvt->Release();
|
|
|
+}
|
|
|
+
|
|
|
void CManageNetWork::LoadFileToData() {
|
|
|
|
|
|
try
|