/// <summary> /// 暴走账号登录 /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <returns></returns> public async Task <User> LoginAsync(string userName, string password) { //先清除Authorization信息 HttpBaseService.RemoveHeader("Authorization"); var result = await BaoZouOAuthAsync(userName, password); if (result != null && string.IsNullOrEmpty(result.Error)) { LoginPost loginPost = new LoginPost() { AccessToken = result.AccessToken, Source = "baozou", User = result.UserId }; User user = await GetUserInfo(loginPost); if (user != null) { HttpBaseService.SetHeader("Authorization", "Bearer " + user.AccessToken); } return(user); } return(null); }
private ApiService() { // 尝试从本地加载Authorization Header if (DataShareManager.Current.User != null && !string.IsNullOrEmpty(DataShareManager.Current.User.AccessToken)) { HttpBaseService.SetHeader("Authorization", "Bearer " + DataShareManager.Current.User.AccessToken); } }
/// <summary> /// 腾讯weibo登录 /// </summary> /// <returns></returns> public async Task <bool> TecentLoginAsync() { var result = await AuthenticationHelper.TencentAuthenticationAsync(); LoginPost loginPost = new LoginPost() { }; User user = await Post <LoginPost, User>(ServiceUri.Login, loginPost); if (user != null) { HttpBaseService.SetHeader("Authorization", "Bearer " + user.AccessToken); DataShareManager.Current.UpdateUser(user); return(true); } return(false); }
/// <summary> /// 新浪weibo登录 /// </summary> /// <returns></returns> public async Task <User> SinaWeiboLoginAsync() { //先清除Authorization信息 HttpBaseService.RemoveHeader("Authorization"); string result = await AuthenticationHelper.SinaAuthenticationAsync(); Regex regex = new Regex(@"(?<=code=)(.)*"); Match match = regex.Match(result); if (match.Success) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("client_id", "3341101057"); dic.Add("client_secret", "0d0fe859e31afdc487d89fa3f3f0fe40"); dic.Add("grant_type", "authorization_code"); dic.Add("redirect_uri", "http://daily.ibaozou.com/sina_weibo/auth"); dic.Add("code", match.Value); var acccessToken = await PostDic <AccessTokenResult>(dic, ServiceUri.AccessToken); if (acccessToken != null) { LoginPost loginPost = new LoginPost() { AccessToken = acccessToken.AccessToken, Source = "sina", User = acccessToken.Uid, }; User user = await GetUserInfo(loginPost); if (user != null) { HttpBaseService.SetHeader("Authorization", "Bearer " + user.AccessToken); } return(user); } } return(null); }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="login">login为null时将使用现有的验证信息刷新用户信息</param> /// <returns></returns> public async Task <User> GetUserInfo(LoginPost login = null) { if (login == null) { login = new LoginPost() { AccessToken = DataShareManager.Current.User.AccessToken, Source = "baozou", User = DataShareManager.Current.User.UserId }; } User user = await Post <LoginPost, User>(ServiceUri.Login, login); if (user != null) { HttpBaseService.SetHeader("Authorization", "Bearer " + user.AccessToken); } return(user); }