Esempio n. 1
0
        public static async Task <LoginResult> XiamiLogin(string useremail, string password)
        {
            if (CheckMemberAuth())
            {
                return(new LoginResult(LoginStatus.LoggedInAlready));
            }
            var token = await GetToken();

            string      content  = $"_xiamitoken={token}&done=http%253A%252F%252Fwww.xiami.com&from=web&havanaId=&email={WebUtility.UrlEncode(useremail)}&password={WebUtility.UrlEncode(password)}&submit=%E7%99%BB+%E5%BD%95";
            HttpContent pcontent = new StringContent(content);

            //pcontent.Headers.Add("Referer", "https://login.xiami.com/member/login");
            pcontent.Headers.Add("Origin", "https://login.xiami.com/");
            var callback = await HttpHelper.PostAsync("https://login.xiami.com/member/login?callback=jQuery", pcontent, (headers) => headers.Referrer = new Uri("https://login.xiami.com/member/login"));

            _logincallback callbackdata = JsonConvert.DeserializeObject <_logincallback>(callback.Substring(8, callback.Length - 9));//"JQuery(...)"
            var            success      = callbackdata.status;

            if (success)
            {
                NickName   = WebUtility.HtmlDecode(callbackdata.data.nick_name);
                UserId     = uint.Parse(callbackdata.data.user_id);
                IsLoggedIn = true;
                return(new LoginResult(LoginStatus.Success));
            }
            else if (callbackdata.message.StartsWith("请使用淘宝"))
            {
                return(new LoginResult(LoginStatus.NeedTaobaoLogin,
                                       callbackdata.message.Substring(7, callbackdata.message.Length - 10)));
            }
            else
            {
                return(new LoginResult(LoginStatus.Unknown));
            }
        }
Esempio n. 2
0
        public static async Task <LoginResult> CheckNeedTaobaoLogin(string useremail)
        {
            var callback = await HttpHelper.GetAsync($"https://login.xiami.com/accounts/checkxiaminame?email={WebUtility.HtmlEncode(useremail)}");

            _logincallback callbackdata = JsonConvert.DeserializeObject <_logincallback>(callback);

            if (callbackdata.status)
            {
                return(new LoginResult(LoginStatus.Success));
            }
            else
            {
                return(new LoginResult(LoginStatus.NeedTaobaoLogin, callbackdata.data.taobao_nick));
            }
        }