Ejemplo n.º 1
0
 public RequestUrlAuthUrlParameters(IRequestAuthUrlParameters parameters) : base(parameters)
 {
     CallbackUrl    = parameters?.CallbackUrl;
     AuthAccessType = parameters?.AuthAccessType;
     ForceLogin     = parameters?.ForceLogin;
     ScreenName     = parameters?.ScreenName;
 }
Ejemplo n.º 2
0
 public void Validate(IRequestAuthUrlParameters parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException(nameof(parameters));
     }
 }
        public void Validate(IRequestAuthUrlParameters parameters)
        {
            _authClientRequiredParametersValidator.Validate(parameters);

            if (parameters.CallbackUrl != null)
            {
                if (parameters.CallbackUrl != "oob" && !Uri.IsWellFormedUriString(parameters.CallbackUrl, UriKind.Absolute))
                {
                    throw new ArgumentException("Invalid format, must be absolute uri or have a value of 'oob'", $"{nameof(parameters)}{nameof(parameters.CallbackUrl)}");
                }
            }
        }
Ejemplo n.º 4
0
        public string GetRequestAuthUrlQuery(IRequestAuthUrlParameters parameters)
        {
            var query = new StringBuilder(Resources.Auth_RequestToken);

            if (parameters.AuthAccessType != null)
            {
                var paramValue = parameters.AuthAccessType == AuthAccessType.ReadWrite ? "write" : "read";
                query.AddParameterToQuery("x_auth_access_type", paramValue);
            }

            query.AddFormattedParameterToQuery(parameters.FormattedCustomQueryParameters);
            return(query.ToString());
        }
Ejemplo n.º 5
0
        public async Task <ITwitterResult <IAuthenticationRequest> > RequestAuthUrl(IRequestAuthUrlParameters parameters, ITwitterRequest request)
        {
            var authToken = new AuthenticationRequest(request.Query.TwitterCredentials);

            var authProcessParams = new RequestAuthUrlInternalParameters(parameters, authToken);

            if (string.IsNullOrEmpty(parameters.CallbackUrl))
            {
                authProcessParams.CallbackUrl = Resources.Auth_PinCodeUrl;
            }

            var requestTokenResponse = await _authQueryExecutor.RequestAuthUrl(authProcessParams, request).ConfigureAwait(false);

            if (string.IsNullOrEmpty(requestTokenResponse.RawResult) || requestTokenResponse.RawResult == Resources.Auth_RequestToken)
            {
                throw new TwitterAuthException(requestTokenResponse, "Invalid authentication response");
            }

            var tokenInformation = _parseRequestUrlResponseRegex.Match(requestTokenResponse.RawResult);

            if (!bool.TryParse(tokenInformation.Groups["oauth_callback_confirmed"].Value, out var callbackConfirmed) || !callbackConfirmed)
            {
                throw new TwitterAuthAbortedException(requestTokenResponse);
            }

            authToken.AuthorizationKey    = tokenInformation.Groups["oauth_token"].Value;
            authToken.AuthorizationSecret = tokenInformation.Groups["oauth_token_secret"].Value;

            var authorizationUrl = new StringBuilder(Resources.Auth_AuthorizeBaseUrl);

            authorizationUrl.AddParameterToQuery("oauth_token", authToken.AuthorizationKey);
            authorizationUrl.AddParameterToQuery("force_login", parameters.ForceLogin);
            authorizationUrl.AddParameterToQuery("screen_name", parameters.ScreenName);

            authToken.AuthorizationURL = authorizationUrl.ToString();

            return(new TwitterResult <IAuthenticationRequest>
            {
                Request = requestTokenResponse.Request,
                Response = requestTokenResponse.Response,
                DataTransferObject = authToken
            });
        }
Ejemplo n.º 6
0
 public void Validate(IRequestAuthUrlParameters parameters)
 {
     _authClientParametersValidator.Validate(parameters);
 }
Ejemplo n.º 7
0
        public async Task <IAuthenticationRequest> RequestAuthenticationUrlAsync(IRequestAuthUrlParameters parameters)
        {
            var twitterResult = await _authRequester.RequestAuthUrlAsync(parameters).ConfigureAwait(false);

            return(twitterResult?.Model);
        }
Ejemplo n.º 8
0
 public RequestAuthUrlInternalParameters(IRequestAuthUrlParameters parameters, IAuthenticationRequest authRequest) : base(parameters)
 {
     AuthRequest = authRequest;
 }
Ejemplo n.º 9
0
        public async Task <IAuthenticationRequest> RequestAuthenticationUrl(IRequestAuthUrlParameters parameters)
        {
            var twitterResult = await _authRequester.RequestAuthUrl(parameters).ConfigureAwait(false);

            return(twitterResult?.DataTransferObject);
        }
Ejemplo n.º 10
0
 public Task <ITwitterResult <IAuthenticationRequest> > RequestAuthUrl(IRequestAuthUrlParameters parameters)
 {
     _validator.Validate(parameters);
     return(ExecuteRequest(request => _authController.RequestAuthUrl(parameters, request)));
 }