Exemplo n.º 1
0
        protected virtual AccessTokenResult ParseAccessTokenResponse(string responseText, AccessTokenRequestParameters request)
        {
            var result = (AccessTokenApiResult)JsonSerializer.Deserialize(responseText, typeof(AccessTokenApiResult));
            var token = new AccessTokenResult
            {
                AccessToken = result.access_token,
                AccessTokenExpireTime = DateTime.Now.AddSeconds(result.expires_in),
                RefreshToken = result.refresh_token,
                UserId = request.AuthorizationResult.UserId
            };

            return token;
        }
Exemplo n.º 2
0
        public virtual AccessTokenResult GetAccessToken(AccessTokenRequestParameters parameters)
        {
            var data = new NameValueCollection().FluentAdd("client_id", parameters.AppInfo.AppId)
                                                .FluentAdd("client_secret", parameters.AppInfo.AppSecret)
                                                .FluentAdd("redirect_uri", parameters.RedirectUri)
                                                .FluentAdd("code", parameters.AuthorizationResult.Code)
                                                .FluentAdd("grant_type", "authorization_code")
                                                .AddIfValueIsNotNullOrEmpty("state", parameters.State);

            string responseText = null;

            if (Method == HttpMethod.Get)
            {
                responseText = HttpClient.Get(ApiPath, data, Encoding.UTF8);
            }
            else
            {
                responseText = HttpClient.Post(ApiPath, data, Encoding.UTF8);
            }

            return ParseAccessTokenResponse(responseText, parameters);
        }
 protected virtual IAccessTokenRequest CreateAccessTokenRequest(AccessTokenRequestParameters parameters)
 {
     return new AccessTokenRequest(UrlUtil.Combine(ApiBasePath, "token"), HttpClient);
 }
 public virtual AccessTokenResult GetAccessToken(AccessTokenRequestParameters parameters)
 {
     return CreateAccessTokenRequest(parameters).GetAccessToken(parameters);
 }