Пример #1
0
        /// <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);
        }
Пример #2
0
 private ApiService()
 {
     // 尝试从本地加载Authorization Header
     if (DataShareManager.Current.User != null && !string.IsNullOrEmpty(DataShareManager.Current.User.AccessToken))
     {
         HttpBaseService.SetHeader("Authorization", "Bearer " + DataShareManager.Current.User.AccessToken);
     }
 }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }