/// <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); }
/// <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); }
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); }
public Authenticator(LoginResultDelegate loginResult) { LoginResult = loginResult; }
public static LoginProvider AnonymousLogin(string server, LoginResultDelegate callback, int sendTimeOut) { return(new LoginProvider(TestorUserNameValidator.AnonymousUserName, TestorUserNameValidator.AnonymousPassword, server, callback, sendTimeOut, null)); }
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); }
/// <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)); }