public void Login(string authenticator, object credentials, Hashtable addData, System.Action <string, object> callback) { var req = Post("/auth/login"); req.numRetries = 1; req.suspendMethod = Request.eSuspendMethod.Break; req.AddData("authenticator", authenticator); req.AddData("credentials", credentials); if (addData != null) { req.AddData(addData); } endPoint.Service(req, delegate(Response res) { if (res.sucessful) { var stoken = Dot.String("stoken", res.hashtable, null); if (!string.IsNullOrEmpty(stoken)) { endPoint.AddData("stoken", stoken); BugReport.AddData("stoken", stoken); } callback(null, res.hashtable); } else { callback(res.localizedError, res.result); } }); }
void _PostLogin(Hashtable reqData) { LogWithTime("_PostLogin=====>"); LoadingLogic.AddCustomProgress(5); _api.LoginData(reqData, delegate(string err, Hashtable data) { LogWithTime("_api.LoginData=====>1"); LoadingLogic.AddCustomProgress(5); if (!string.IsNullOrEmpty(err)) { _LoginFailed(err); return; } LogWithTime("_api.LoginData=====>2"); Hub.Instance.DataStore.LoginDataStore.LoginData = data ?? Hub.Instance.DataStore.LoginDataStore.LoginData; LogWithTime("_api.LoginData=====>3"); var user = Dot.Object("user", data, null); if (user == null) { return; } LogWithTime("_api.LoginData=====>4"); LocalUser = Hub.Instance.UserManager.GetUser(user); _account.Add(_user); BugReport.AddData("uid", _user.Id.ToString()); Hashtable configs = EB.Dot.Object("configs", Hub.Instance.DataStore.LoginDataStore.LoginData, null); Hub.Instance.DataStore.LoginDataStore.LoginData.Remove("configs"); LogWithTime("_api.LoginData=====>5"); //从服务器拉取表,解析表 Hub.Instance.DataCacheManager.ProcessCaches(configs, error => { LogWithTime("<=====ProcessCaches"); if (!string.IsNullOrEmpty(error)) { _LoginFailed(error); return; } SetState(LoginState.LoggedIn); }, LoadingLogic.AddCustomProgress); }); }