private void UpdateLoginData(SdkAuth2Res res) { if (LoginData == null) LoginData = new LoginData(); LoginData.access_token = res.AccessToken; LoginData.expires_in = int.Parse(res.ExpriesIn); LoginData.refresh_token = res.RefreshToken; LoginData.source = LoginType.Sina.Convert(); LoginData.user = res.Uid; StorageUtil.AddObject(LoginDataKey, LoginData); }
/// <summary> /// 处理授权结果. /// </summary> /// <param name="response"></param> private void HandleResult(RestResponse response) { SdkAuthError err = new SdkAuthError(); string responseStr = response.Content; if (response.StatusCode != (int)HttpStatusCode.OK || response.ErrorException != null) { if (response.ContentLength == 0D) { err.errCode = SdkErrCode.NET_UNUSUAL; if (null != LoginCallback) { LoginCallback(false, err, null); } return; } // 解析错误信息. OAuthErrRes errRes = SerializeOAuthResult <OAuthErrRes>(responseStr); err.errCode = SdkErrCode.SERVER_ERR; err.specificCode = errRes.ErrorCode; err.errMessage = errRes.errDes; if (null != LoginCallback) { LoginCallback(false, err, null); } } else { err.errCode = SdkErrCode.SUCCESS; SdkAuth2Res oauthResult = SerializeOAuthResult <SdkAuth2Res>(responseStr); // 保存AccessToken. SdkData.AccessToken = oauthResult.AccessToken; localSettings.Values[Constants.ACCESSTOKEN] = oauthResult.AccessToken; localSettings.Values[Constants.EXPIREDTIME] = string.IsNullOrEmpty(oauthResult.ExpriesIn) ? 0: long.Parse(oauthResult.ExpriesIn); localSettings.Values[Constants.LASTAUTHTIME] = Unix2DateTime.GetUnixTimestamp(); if (oauthResult.RefreshToken != null) { localSettings.Values[Constants.REFRESHTOKEN] = oauthResult.RefreshToken; } if (null != LoginCallback) { LoginCallback(true, err, oauthResult); } } }