public override async Task Login(ZhiHuLoginInfo info, Action <RiBaoAuthoInfo> loginCallback) { if (IsAuthorized && TokenInfo != null) { var zhiHuAuthoData = await LoginZhiHu(); loginCallback?.Invoke(zhiHuAuthoData); return; } try { _oauth.LoginCallback += async(isSuccess, err, response) => { if (isSuccess) { _oauth.IsAuthorized = true; UpdateTokenInfo(response); var zhiHuAuthoData = await LoginZhiHu(); loginCallback?.Invoke(zhiHuAuthoData); } else { loginCallback?.Invoke(null); } }; _oauth.BeginOAuth(); } catch { loginCallback?.Invoke(null); } }
public static void Login(LoginType loginType, ZhiHuLoginInfo loginInfo, Action <bool> loginCallback) { if (IsLogin) { return; } if (loginCallback == null) { loginCallback = isSuccess => { } } ; string msg = string.Empty; if (!CheckLoginType(loginType, out msg)) { loginCallback(false); } Authorizations[loginType].Login(loginInfo, autho => { var isSuccess = autho != null; if (isSuccess) { UpdateLoginInfo(loginType, autho); } loginCallback?.Invoke(isSuccess); }); }
public override async Task Login(ZhiHuLoginInfo info, Action <RiBaoAuthoInfo> loginCallback) { if (IsAuthorized) { loginCallback?.Invoke(await DataRequester.LoginUsingZhiHu(TokenInfo)); return; } if (info == null) { loginCallback?.Invoke(null); return; } if (info.Captcha != null && !await CheckCaptcha(info.Captcha)) { loginCallback?.Invoke(null); return; } var signInfo = await DataRequester.ZhiHuLogin(info.UserName, info.Password); if (!CheckError(signInfo)) { loginCallback?.Invoke(null); return; } var zhiHuAutoInfo = await DataRequester.GetZhiHuAuthorization(signInfo); if (!CheckError(zhiHuAutoInfo)) { loginCallback?.Invoke(null); return; } TokenInfo = await DataRequester.GetZhiHuToken(zhiHuAutoInfo); if (TokenInfo == null || string.IsNullOrEmpty(TokenInfo.access_token)) { PopupMessage.DisplayMessage(StringUtil.GetString("LoginFailed") + TokenInfo?.Data ?? ""); loginCallback?.Invoke(null); return; } TokenInfo.LastAuthoDate = DateTime.Now; TokenInfo.source = LoginType.ZhiHu.Convert(); StoreTokenInfo(); var autoInfo = await DataRequester.LoginUsingZhiHu(TokenInfo); loginCallback?.Invoke(autoInfo); }
public abstract Task Login(ZhiHuLoginInfo info, Action <RiBaoAuthoInfo> loginCallback);