Esempio n. 1
0
        /// <summary>
        /// 注册NIM客户端自动重连回调。重连失败时,如果不是网络错误引起的(网络相关的错误号为kNIMResTimeoutError和kNIMResConnectionError),而是服务器返回了非kNIMResSuccess的错误号,
        /// 则说明重连的机制已经失效,需要APP层调用Logout执行注销操作并退回到登录界面后进行重新登录.
        /// </summary>
        /// <param name="jsonExtension">json扩展参数(备用,目前不需要)</param>
        /// <param name="handler">自动重连的回调函数
        /// 如果返回错误号kNIMResExist,说明无法继续重连,App层必须调用Logout退出到登录界面,以便用户重新进行登录.
        /// </param>
        public static void RegAutoReloginCb(LoginResultDelegate handler, string jsonExtension = null)
        {
            GuaranteeInitialized();
            IntPtr ptr = NimUtility.DelegateConverter.ConvertToIntPtr(handler);

            ClientNativeMethods.nim_client_reg_auto_relogin_cb(jsonExtension, LoginResultCallback, ptr);
        }
Esempio n. 2
0
        /// <summary>
        /// NIM客户端登录
        /// </summary>
        /// <param name="appKey">The app key.</param>
        /// <param name="account">The account.</param>
        /// <param name="token">令牌 (在后台绑定的登录token).</param>
        /// <param name="handler">登录流程的回调函数</param>
        public static void Login(string appKey, string account, string token, LoginResultDelegate handler = null)
        {
            if (!CheckLoginParams(appKey, account, token))
            {
                return;
            }
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(handler);

            ClientNativeMethods.nim_client_login(appKey, account, token, null, LoginResultCallback, ptr);
        }
Esempio n. 3
0
        private LoginProvider(string userName, string password, string server, LoginResultDelegate callback, int sendTimeOut, IServerProvider provider)
        {
            _callback = callback;
            _userName = userName;
            _password = password;
            _server   = server;
            TestorLoginDelegate icd = new TestorLoginDelegate(InitCredintails);

            icd.BeginInvoke(sendTimeOut, provider, new AsyncCallback((o) =>
            {
                _callback.Invoke(HasPassword, _errorMessage);
            }), null);
        }
Esempio n. 4
0
 public Authenticator(LoginResultDelegate loginResult)
 {
     LoginResult = loginResult;
 }
Esempio n. 5
0
 public static LoginProvider AnonymousLogin(string server, LoginResultDelegate callback, int sendTimeOut)
 {
     return(new LoginProvider(TestorUserNameValidator.AnonymousUserName, TestorUserNameValidator.AnonymousPassword, server, callback, sendTimeOut, null));
 }
Esempio n. 6
0
 public static LoginProvider Login(string userName, string password, string server, int sendTimeOut, IServerProvider provider, LoginResultDelegate callback)
 {
     return(new LoginProvider(userName, password, server, callback, sendTimeOut, provider));
 }
        private void GetTokenAsync(JObject paramsObject, LoginResultDelegate resultDelegate)
        {
            ApiRequest apiReq = new ApiRequest { RequestBody = paramsObject.ToString() };
            Task.Run(async () =>
            {
                ApiRequest.ApiResponse apiResp = await apiReq.StartRequestAsync("get_token");

                Tuple<LoginResult, string> loginResult = ParseTokenResult(apiResp);

                if (loginResult.Item1 == LoginResult.Ok)
                {
                    Tuple<UserData, string> userData = await GetUserData();
                    CurrentUserData = userData.Item1;
                    IsActive = (CurrentUserData != null);
                    if (IsActive)
                    {
                        SaveSettings();
                        UpdatePushTokenAsync();
                        resultDelegate(LoginResult.Ok, userData.Item2);
                    }
                    else
                    {
                        ClearTokens();
                        resultDelegate(LoginResult.Failed, userData.Item2);
                    }
                }
                else
                {
                    ClearTokens();
                    resultDelegate(loginResult.Item1, loginResult.Item2);
                }
            });
        }
        public void LoginAsync(string user, string password, LoginResultDelegate resultDelegate)
        {
            IsActive = false;

            JObject jObj = JObject.FromObject(new
            {
                username = user, 
                password = password, 
                device_id = DeviceId,
                api_guid = ApiGuid
            });

            GetTokenAsync(jObj, resultDelegate);
        }
        public void FacebookLoginAsync(string facebookId, string facebookToken, string linkUser, string linkPassword, LoginResultDelegate resultDelegate)
        {
            IsActive = false;

            JObject jObj = JObject.FromObject(new
            {
                facebook_id = facebookId,
                facebook_token = facebookToken,
                link_user = linkUser,
                link_password = linkPassword,
                device_id = DeviceId,
                api_guid = ApiGuid
            });

            GetTokenAsync(jObj, resultDelegate);
        }
Esempio n. 10
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="user_id">用户的 UserID</param>
        /// <param name="user_sig">用户的 UserSig</param>
        /// <param name="handler">登录成功与否的回调。回调函数定义请参考 TIMCommCallback</param>
        public static TIMResult IMLogin(string user_id, string user_sig, LoginResultDelegate handler = null)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(handler);

            return((TIMResult)TIMClientAPIDef.TIMLogin(user_id, user_sig, LoginResultCallBack, ptr));
        }