using System.Collections; using System.Collections.Generic; using System; using UnityEngine; using UnityEngine.Networking; using Newtonsoft.Json; /* Http控制器-登录 */ public class LoginController : JCUnityLib.Singleton { public IEnumerator LoginNormal(string username, string password, Action callback) { Debug.Log("LoginNormal:"+ username); string url = CommonConfig.gateServerURL + "/gameLogin/loginNormal"; WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator LoginByWX(string loginCode, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/loginByWX"; WWWForm form = new WWWForm(); form.AddField("loginCode", loginCode); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.timeout = 10; yield return request.SendWebRequest(); RequestResult requestResult = new RequestResult(); if (request.result == UnityWebRequest.Result.Success) { requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); } if (callback != null) callback(requestResult); } } public IEnumerator LoginByApple(string identityToken, string email, string fullName, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/loginByApple"; WWWForm form = new WWWForm(); form.AddField("identityToken", identityToken); form.AddField("email", email); form.AddField("fullName", fullName); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.timeout = 10; yield return request.SendWebRequest(); RequestResult requestResult = new RequestResult(); if (request.result == UnityWebRequest.Result.Success) { requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); } if (callback != null) callback(requestResult); } } public IEnumerator DdeleteUserByApple(string identityToken, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/deleteUserByApple"; WWWForm form = new WWWForm(); form.AddField("identityToken", identityToken); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.timeout = 10; yield return request.SendWebRequest(); RequestResult requestResult = new RequestResult(); if (request.result == UnityWebRequest.Result.Success) { requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); } if (callback != null) callback(requestResult); } } public IEnumerator Register(string username, string password, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/register"; WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator Register2(string username, string password, string email, string phone, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/register2"; WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); form.AddField("email", email); form.AddField("phone", phone); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator CompleteUserInfo( string username, string password, string nickname, int gender, string birthday, string countryCode, string stateCode, string cityCode, Action callback ) { string url = CommonConfig.gateServerURL + "/gameLogin/completeUserInfo"; WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); form.AddField("nickname", nickname); form.AddField("gender", gender); form.AddField("birthday", birthday); form.AddField("countryCode", countryCode); form.AddField("stateCode", stateCode); form.AddField("cityCode", cityCode); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator LoginByPhone(string phone, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/loginByPhone"; WWWForm form = new WWWForm(); form.AddField("phone", phone); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator LoginByToken(Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/loginByToken"; WWWForm form = new WWWForm(); form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey)); form.AddField("sceneName", UnityEngine.SceneManagement.SceneManager.GetActiveScene().name); form.AddField("serverIndex", CommonConfig.serverIndex); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.timeout = 10; yield return request.SendWebRequest(); RequestResult requestResult; if (request.result == UnityWebRequest.Result.Success) requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); else { requestResult = new RequestResult(); Debug.LogError("LoginByToken Request Fail: " + request.result); } if (callback != null) callback(requestResult); } } public IEnumerator GetUserInfo(Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/getUserInfo"; WWWForm form = new WWWForm(); form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey)); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.timeout = 10; yield return request.SendWebRequest(); RequestResult requestResult; if (request.result == UnityWebRequest.Result.Success) requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); else { requestResult = new RequestResult(); } if (callback != null) callback(requestResult); } } public IEnumerator ListUsernamesByEmail(string email, long timestamp, string sign, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/listUsernamesByEmail"; WWWForm form = new WWWForm(); form.AddField("email", email); form.AddField("timestamp", timestamp.ToString()); form.AddField("sign", sign); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator ListUsernamesByPhone(string phone, long timestamp, string sign, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/listUsernamesByPhone"; WWWForm form = new WWWForm(); form.AddField("phone", phone); form.AddField("timestamp", timestamp.ToString()); form.AddField("sign", sign); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } public IEnumerator ResetPassword(string sign, long timestamp, string username, string password, Action callback) { string url = CommonConfig.gateServerURL + "/gameLogin/resetPassword"; WWWForm form = new WWWForm(); form.AddField("sign", sign); form.AddField("timestamp", timestamp.ToString()); form.AddField("username", username); form.AddField("password", password); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { yield return request.SendWebRequest(); RequestResult requestResult = JsonConvert.DeserializeObject(request.downloadHandler.text); if (callback != null) callback(requestResult); } } } public class RequestResult { public int code = -9999; public object data; public string msg; }