alroyso пре 2 година
родитељ
комит
fbde23d6cc

+ 13 - 1
SProxy/CApp.cpp

@@ -4,7 +4,7 @@
 
 CApp* SSingleton<CApp>::ms_Singleton = NULL;
 
-CApp::CApp() : m_is_out(0), m_versioninfo(nullptr),m_userinfo(nullptr), m_server_list(nullptr), m_sys_config(nullptr), m_proxy_mode(PROXY_MODE::sys_mode), m_route_mode(ROUT_MODE::cn_mode)
+CApp::CApp() : m_is_out(0), m_versioninfo(nullptr),m_userinfo(nullptr), m_server_list(nullptr), m_sys_config(nullptr), m_proxy_mode(PROXY_MODE::sys_mode), m_route_mode(ROUT_MODE::cn_mode), m_login_info(nullptr)
 {
 	m_hInst = nullptr;
 }
@@ -16,6 +16,9 @@ CApp::~CApp()
 
 void CApp::Init()
 {
+	if (!m_login_info) {
+		m_login_info = new CLoginInfo();
+	}
 	if (!m_userinfo)
 	{
 		m_userinfo = new CUserInfo();
@@ -34,9 +37,15 @@ void CApp::Init()
 	{
 		m_sys_config = new CSysConfig();
 	}
+
+	
 }
 
 void CApp::UnInit() {
+	if (m_login_info) {
+		delete m_login_info;
+		m_login_info = nullptr;
+	}
 	if (m_userinfo)
 	{
 		delete m_userinfo;
@@ -61,6 +70,9 @@ void CApp::UnInit() {
 	}
 }
 
+CLoginInfo* CApp::GetLoginInfo() {
+	return m_login_info;
+}
  
 CUserInfo* CApp::GetUserinfo()
 {

+ 4 - 1
SProxy/CApp.h

@@ -4,7 +4,7 @@
 #include "CServerList.h"
 #include "CVersion.h"
 #include "CSysConfig.h"
-
+#include "CLoginInfo.h"
 enum struct PROXY_MODE {
 
 	sys_mode = 0,
@@ -42,6 +42,8 @@ public:
 
 	void UnInit();
 
+	CLoginInfo* GetLoginInfo();
+
 	CSysConfig* CApp::GetSysconfig();
 	CUserInfo* GetUserinfo();
 	CServerList* GetServerList();
@@ -86,6 +88,7 @@ public:
 	void SetSelect_node(std::string val);
 private:
 	int m_is_out;
+	CLoginInfo* m_login_info;
 	CServerList* m_server_list;
 	CUserInfo* m_userinfo;
 	CVersion* m_versioninfo;

+ 48 - 0
SProxy/CLoginInfo.cpp

@@ -0,0 +1,48 @@
+#include "stdafx.h"
+#include "CLoginInfo.h"
+
+
+CLoginInfo::CLoginInfo()
+{
+}
+
+CLoginInfo::~CLoginInfo()
+{
+}
+
+
+bool CLoginInfo::Init(std::string data)
+{
+	if (data.empty())
+	{
+		return false;
+	}
+
+	try
+	{
+		nlohmann::json j = nlohmann::json::parse(data.begin(), data.end());
+
+		if (j["code"].get<int>() == 0)
+		{
+			//
+			this->token = j["data"]["token"].get<std::string>();
+			this->auth_data = j["data"]["auth_data"].get<std::string>();
+			return true;
+
+		}
+		else
+		{
+			this->m_error_msg = S_CA2W(j["message"].get<std::string>().c_str(), CP_UTF8).GetBuffer(0);
+
+			return false;
+		}
+
+
+	}
+	catch (...)
+	{
+		this->m_error_msg = L"½âÎöÊý¾Ý´íÎó";
+		return false;
+	}
+	return false;
+}

+ 19 - 0
SProxy/CLoginInfo.h

@@ -0,0 +1,19 @@
+#pragma once
+
+#include "CBaseMode.h"
+
+
+class CLoginInfo : public CBaseMode
+{
+public:
+	CLoginInfo();
+	~CLoginInfo();
+
+	
+	bool Init(std::string data);
+public:
+	std::string token;
+	std::string auth_data;
+	//user
+};
+

+ 5 - 5
SProxy/CManageNetWork.cpp

@@ -155,7 +155,7 @@ void CManageNetWork::ThreadFun_login(LPARAM lParam)
 	SStringW msg = L"";
 	std::string data;
 
-	HTTPRET httpstatus = m_base_curl->GetSysConfigFromUser(this->m_username, this->m_password, data);
+	HTTPRET httpstatus = m_base_curl->GetSysConfig(data);
 	if (httpstatus == HTTPRET::http_user_expired_at)
 	{
 		code = -2;
@@ -199,10 +199,10 @@ void CManageNetWork::ThreadFun_login(LPARAM lParam)
 
 	if (!data.empty())
 	{
-		if (!CApp::getSingletonPtr()->GetUserinfo()->Init(data))
+		if (!CApp::getSingletonPtr()->GetLoginInfo()->Init(data))
 		{
 			code = -1;
-			msg = CApp::getSingletonPtr()->GetUserinfo()->GetLastErrorW();
+			msg = CApp::getSingletonPtr()->GetLoginInfo()->GetLastErrorW();
 		}
 	}
 
@@ -219,7 +219,7 @@ void CManageNetWork::ThreadFun_login(LPARAM lParam)
 void CManageNetWork::ThreadFun_Dowlon_Config(LPARAM lParam)
 {
 	IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
-	int code = 200;
+	/*int code = 200;
 	SStringW msg = L"";
 	std::string data;
 	if (!m_base_curl->Download(CApp::getSingletonPtr()->GetUserinfo()->clash_config)) {
@@ -231,7 +231,7 @@ void CManageNetWork::ThreadFun_Dowlon_Config(LPARAM lParam)
 	pEvt->status = code;
 	pEvt->msg = msg;
 	SNotifyCenter::getSingleton().FireEventAsync(pEvt);
-	pEvt->Release();
+	pEvt->Release();*/
 }
 
 

+ 13 - 7
SProxy/CNetWork.cpp

@@ -27,7 +27,7 @@ HTTPRET  CNetWork::Version(std::string& data) {
 	std::vector<cpr::Parameter> p;
 	p.push_back({ "tag","win" });
 	p.push_back({ "appverion",S_CW2A(VERSION).GetBuffer(0)});
-	std::string text = GetUrl("/api/client/v3/version", p, CApp::getSingletonPtr()->GetUserinfo()->access_token);
+	std::string text = GetUrl("/api/client/v3/version", p, CApp::getSingletonPtr()->GetLoginInfo()->token);
 	if (text.empty()) {
 
 		return HTTPRET::http_f;
@@ -38,7 +38,7 @@ HTTPRET  CNetWork::Version(std::string& data) {
 
 HTTPRET CNetWork::Refresh(std::string& data) {
 	std::vector<cpr::Parameter> p;
-	std::string text = GetUrl("/api/client/v3/refresh", p, CApp::getSingletonPtr()->GetUserinfo()->access_token);
+	std::string text = GetUrl("/api/client/v3/refresh", p, CApp::getSingletonPtr()->GetLoginInfo()->token);
 	if (text.empty()) {
 
 		return HTTPRET::http_f;
@@ -50,7 +50,7 @@ HTTPRET CNetWork::Refresh(std::string& data) {
 
 HTTPRET CNetWork::Auth(std::string& data){
 	std::vector<cpr::Parameter> p;
-	std::string text = GetUrl("/api/client/v3/authUser",p,CApp::getSingletonPtr()->GetUserinfo()->access_token);
+	std::string text = GetUrl("/api/client/v3/authUser",p,CApp::getSingletonPtr()->GetLoginInfo()->token);
 	if (text.empty()) {
 		return HTTPRET::http_f;
 	}
@@ -59,7 +59,7 @@ HTTPRET CNetWork::Auth(std::string& data){
 }
 HTTPRET CNetWork::GetServerNode(std::string& data) {
 	std::vector<cpr::Parameter> p;
-	std::string text = GetUrl("/api/client/v4/nodes",p,CApp::getSingletonPtr()->GetUserinfo()->access_token);
+	std::string text = GetUrl("/api/client/v4/nodes",p,CApp::getSingletonPtr()->GetLoginInfo()->token);
 	if (text.empty()) {
 
 		return HTTPRET::http_f;
@@ -76,7 +76,7 @@ HTTPRET CNetWork::GetSysConfig(std::string& data)
 {
 	AutoToggleNode();
 	std::vector<cpr::Parameter> p;
-	std::string text = GetUrl("/api/client/v3/getconfig", p);
+	std::string text = GetUrl("/api/v1/manage/getUrl", p);
 	if (text.empty()) {
 		if (m_http_status == 445)
 		{
@@ -112,6 +112,9 @@ HTTPRET CNetWork::PostReg(LPCSTR username, LPCSTR password, std::string& data) {
 		{
 			return HTTPRET::http_user_transfer_enable;
 		}
+		else if (m_http_status == 447) {
+			return HTTPRET::http_user_enable;
+		}
 		else {
 			return HTTPRET::http_f;
 		}
@@ -128,7 +131,7 @@ HTTPRET CNetWork::PostLogin(LPCSTR username, LPCSTR password, std::string& data)
 	std::vector<cpr::Pair> p;
 	p.push_back({ "email",username });
 	p.push_back({ "password",password });
-	std::string text = PostUrl("/api/client/v3/login", p);
+	std::string text = PostUrl("/manage/auth/login/", p);
 	if (text.empty()) {
 		if (m_http_status == 445)
 		{
@@ -137,6 +140,9 @@ HTTPRET CNetWork::PostLogin(LPCSTR username, LPCSTR password, std::string& data)
 		{
 			return HTTPRET::http_user_transfer_enable;
 		}
+		else if (m_http_status == 447) {
+			return HTTPRET::http_user_enable;
+		}
 		else {
 			return HTTPRET::http_f;
 		}
@@ -432,7 +438,7 @@ void CNetWork::AutoToggleNode() {
 	for each (ServerListUrl  itme in m_url_list)
 	{
 		cpr::Session m_session;
-		auto s = fmt::format("{0}{1}", itme.url, "/api/client/v3/version");
+		auto s = fmt::format("{0}{1}", itme.url, "/api/v1/manage/getUrl");
 		m_session.SetHeader(hander);
 		m_session.SetVerifySsl(false);
 		m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });

+ 10 - 10
SProxy/CSysConfig.cpp

@@ -24,23 +24,23 @@ bool CSysConfig::Inti(std::string data)
 	{
 		nlohmann::json j = nlohmann::json::parse(data.begin(), data.end());
 
-		if (j["ret"].get<int>() == 1)
+		if (j["code"].get<int>() == 0)
 		{
 			//
-			auto stime = j["data"]["user_login_url"].get<std::string>();
-			userbuylink = j["data"]["user_login_url"].get<std::string>();
-			userattrlink = j["data"]["affurl"].get<std::string>();
-			useronlinekflink = j["data"]["user_ticket"].get<std::string>();
-			user_reg = j["data"]["user_reg"].get<std::string>();
-			user_reset = j["data"]["user_reset"].get<std::string>();
-			user_tutorial = j["data"]["user_tutorial"].get<std::string>();
-			user_tag = j["data"]["tag"].get<int>();
+			//auto stime = j["data"]["user_login_url"].get<std::string>();
+			//userbuylink = j["data"]["user_login_url"].get<std::string>();
+			//userattrlink = j["data"]["affurl"].get<std::string>();
+			//useronlinekflink = j["data"]["user_ticket"].get<std::string>();
+			user_reg = j["data"]["register"].get<std::string>();
+			 user_reset = j["data"]["user_reset"].get<std::string>();
+			//user_tutorial = j["data"]["user_tutorial"].get<std::string>();
+			//user_tag = j["data"]["tag"].get<int>();
 			return true;
 
 		}
 		else
 		{
-			this->m_error_msg = S_CA2W(j["msg"].get<std::string>().c_str(), CP_UTF8).GetBuffer(0);
+			this->m_error_msg = S_CA2W(j["message"].get<std::string>().c_str(), CP_UTF8).GetBuffer(0);
 			return false;
 		}
 

+ 17 - 19
SProxy/CUserInfo.cpp

@@ -3,7 +3,7 @@
 
 #include "FileOperate.h"
 
-CUserInfo::CUserInfo() : id(0), port(0), enable(0)
+CUserInfo::CUserInfo()
 {
 }
 
@@ -22,31 +22,29 @@ bool CUserInfo::Init(std::string data)
 	{
 		nlohmann::json j = nlohmann::json::parse(data.begin(), data.end());
 
-		if (j["ret"].get<int>() == 1)
+		if (j["code"].get<int>() == 0)
 		{
-			//
-			this->access_token = j["data"]["access_token"].get<std::string>();
-			this->affurl = j["data"]["affurl"].get<std::string>();
-			this->swoftdownload = j["data"]["swoftdownload"].get<std::string>();
-			this->clash_config = j["data"]["clash_config"].get<std::string>();
-			this->user_login_url = j["data"]["user_login_url"].get<std::string>();
-			//
-			this->id = j["data"]["user"].at("id").get<int>();
-			this->username = j["data"]["user"].at("account").get<std::string>();
-			this->expiretime = j["data"]["user"].at("expired_at").get<std::string>();
-			this->password = j["data"]["user"].at("passwd").get<std::string>();
-			this->unusedTraffic = j["data"]["user"].at("unusedTraffic").get<std::string>();
-			this->uuid = j["data"]["user"].at("uuid").get<std::string>();
-			this->level = j["data"]["user"].at("level").get<std::string>();
-			this->port = j["data"]["user"].at("port").get<int>();
-			this->enable = j["data"]["user"].at("enable").get<int>();
+			//this->affurl = j["data"]["affurl"].get<std::string>();
+			//this->swoftdownload = j["data"]["swoftdownload"].get<std::string>();
+			//this->clash_config = j["data"]["clash_config"].get<std::string>();
+			//this->user_login_url = j["data"]["user_login_url"].get<std::string>();
+			////
+			//this->id = j["data"]["user"].at("id").get<int>();
+			//this->username = j["data"]["user"].at("account").get<std::string>();
+			//this->expiretime = j["data"]["user"].at("expired_at").get<std::string>();
+			//this->password = j["data"]["user"].at("passwd").get<std::string>();
+			//this->unusedTraffic = j["data"]["user"].at("unusedTraffic").get<std::string>();
+			//this->uuid = j["data"]["user"].at("uuid").get<std::string>();
+			//this->level = j["data"]["user"].at("level").get<std::string>();
+			//this->port = j["data"]["user"].at("port").get<int>();
+			//this->enable = j["data"]["user"].at("enable").get<int>();
 			
 			return true;
 
 		}
 		else
 		{
-			this->m_error_msg = S_CA2W(j["msg"].get<std::string>().c_str(),CP_UTF8).GetBuffer(0);
+			this->m_error_msg = S_CA2W(j["message"].get<std::string>().c_str(),CP_UTF8).GetBuffer(0);
 
 			return false;
 		}

+ 12 - 12
SProxy/CUserInfo.h

@@ -17,20 +17,20 @@ public:
 
 public:
 	//user
-	std::string username;
+	std::string username;	//邮箱名
 	std::string expiretime; //到期时间
-	std::string acctoken;
-	std::string password;
+	//std::string acctoken;
+	//std::string password;
 	std::string unusedTraffic; //用户流量
-	std::string uuid;		   //uuid
-	std::string level;		   //用户级别
-	std::string access_token;
+	//std::string uuid;		   //uuid
+	//std::string level;		   //用户级别
+	//std::string access_token;
 	int enable;
-	std::string affurl; //推荐地址
-	std::string swoftdownload; //软件下载地址
-	std::string clash_config; //配置地址
-	std::string user_login_url; //用户URL
-	int id;
-	int port;
+	//std::string affurl; //推荐地址
+	//std::string swoftdownload; //软件下载地址
+	//std::string clash_config; //配置地址
+	//std::string user_login_url; //用户URL
+	//int id;
+	//int port;
 };
 

BIN
SProxy/LoginDlg.cpp


BIN
SProxy/LoginDlg.h


+ 2 - 0
SProxy/SProxy.vcxproj

@@ -212,6 +212,7 @@
     <ClCompile Include="ClashApi.cpp" />
     <ClCompile Include="CLashConfig.cpp" />
     <ClCompile Include="ClashModel.cpp" />
+    <ClCompile Include="CLoginInfo.cpp" />
     <ClCompile Include="CManageNetWork.cpp" />
     <ClCompile Include="CNetWork.cpp" />
     <ClCompile Include="CProcess.cpp" />
@@ -253,6 +254,7 @@
     <ClInclude Include="ClashApi.h" />
     <ClInclude Include="CLashConfig.h" />
     <ClInclude Include="ClashModel.h" />
+    <ClInclude Include="CLoginInfo.h" />
     <ClInclude Include="CManageNetWork.h" />
     <ClInclude Include="CNetWork.h" />
     <ClInclude Include="CNodeAdapter.hpp" />

+ 6 - 0
SProxy/SProxy.vcxproj.filters

@@ -131,6 +131,9 @@
     <ClCompile Include="CSysConfig.cpp">
       <Filter>Model</Filter>
     </ClCompile>
+    <ClCompile Include="CLoginInfo.cpp">
+      <Filter>Model</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="SProxy.rc">
@@ -249,6 +252,9 @@
     <ClInclude Include="CSysConfig.h">
       <Filter>Model</Filter>
     </ClInclude>
+    <ClInclude Include="CLoginInfo.h">
+      <Filter>Model</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="res\soui_res.rc2">

+ 1 - 1
SProxy/uires/xml/dlg_login.xml

@@ -45,7 +45,7 @@ appWnd="1"
             </window>
           
 
-            <text colorText="#ffffff88" font="adding:5,bold:1" extend="10,25,0,0" >登录服务器选择</text>
+            <!-- <text colorText="#ffffff88" font="adding:5,bold:1" extend="10,25,0,0" >登录服务器选择</text> -->
 
             <!-- <tabtypecontrol name="nodeclass" size="400,45" gravity="center" extend="47,25,44,0"/> -->
                            <!-- <window size="-2,-1" layout="hbox"   gravity="center"  extend="47,19,44,0">