示例#1
0
        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);
                }
            });
        }
示例#2
0
        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);
            });
        }