Exemple #1
0
        private async Task<TokenResult> AccessTokenAsync(GrantType grantType, string refreshToken = null, string userName = null,
            string password = null, string authorizationCode = null, string redirectUri = null)
        {
            var parameters = new Dictionary<string, string> { { "grant_type", grantType.GetText() } };

            if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
            {
                parameters.Add("mobile", userName);
                parameters.Add("password", password);
            }
            if (!string.IsNullOrEmpty(authorizationCode))
            {
                parameters.Add("code", authorizationCode);
                parameters.Add("redirect_uri", redirectUri); //和获取 authorization_code 的 redirect_uri 必须一致,不然会报错
            }
            if (!string.IsNullOrEmpty(refreshToken))
            {
                parameters.Add("refresh_token", refreshToken);
            }

            ClientHelper.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                "Basic",
                Convert.ToBase64String(Encoding.ASCII.GetBytes(_clientId + ":" + _clientSecret)));

            var response = await ClientHelper.PostAsync(TokenPath, new FormUrlEncodedContent(parameters));
            var responseValue = await response.Content.ReadAsStringAsync();
            if (response.StatusCode == HttpStatusCode.OK)
                return JsonHelper.Json<TokenResult>(responseValue, NamingType.UrlCase);
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(responseValue);
            return null;
        }
Exemple #2
0
        private async Task <TokenResult> AccessTokenAsync(GrantType grantType, string refreshToken = null, string userName = null,
                                                          string password = null, string authorizationCode = null, string redirectUri = null)
        {
            var parameters = new Dictionary <string, string> {
                { "grant_type", grantType.GetText() }
            };

            if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
            {
                parameters.Add("mobile", userName);
                parameters.Add("password", password);
            }
            if (!string.IsNullOrEmpty(authorizationCode))
            {
                parameters.Add("code", authorizationCode);
                parameters.Add("redirect_uri", redirectUri); //和获取 authorization_code 的 redirect_uri 必须一致,不然会报错
            }
            if (!string.IsNullOrEmpty(refreshToken))
            {
                parameters.Add("refresh_token", refreshToken);
            }

            ClientHelper.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                "Basic",
                Convert.ToBase64String(Encoding.ASCII.GetBytes(_clientId + ":" + _clientSecret)));

            var response = await ClientHelper.PostAsync(TokenPath, new FormUrlEncodedContent(parameters));

            var responseValue = await response.Content.ReadAsStringAsync();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                return(JsonHelper.Json <TokenResult>(responseValue, NamingType.UrlCase));
            }
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(responseValue);
            return(null);
        }