Example #1
0
        public async Task <GetTokensResponse> GetTokensAsync(GetTokensRequest request)
        {
            if (request.OAuthLogin == null || !request.OAuthLogin.IsValid)
            {
                request.OAuthLogin = new OAuthLogin
                {
                    ClientId     = _oauthClientSettings.DefaultClientId,
                    ClientSecret = _oauthClientSettings.DefaultClientSecret,
                    Scopes       = _oauthClientSettings.DefaultScopes,
                    GrantType    = _oauthClientSettings.DefaultGrantType
                }
            }
            ;

            var tokenClient = new TokenClient(GetOAuthEndpointUri("token").AbsoluteUri, request.OAuthLogin.ClientId,
                                              request.OAuthLogin.ClientSecret);

            var result = await
                         tokenClient.RequestResourceOwnerPasswordAsync(request.Username, request.Password,
                                                                       request.OAuthLogin.Scopes);

            var response = CreateTokenResponse(request, result, request.RedirectUriOnSuccess,
                                               request.RedirectUriOnFailure);

            return(response);
        }
Example #2
0
 public async Task <GetProviderTokenResponse> GetTokens(GetTokensRequest request)
 {
     return(await PostAsync <GetTokensRequest, GetProviderTokenResponse>(
                request,
                CreateUri(HydraServices.AuthService2, HydraMethods.GetTokens),
                expectContinue : true));
 }
Example #3
0
 public bool Authorize()
 {
     authorized = false;
     try
     {
         APIInfoResponse apiInfoResponse = GetFleetAPI_Info();
     }
     catch (Exception)
     {
         try
         {
             GetTokensRequest request = new GetTokensRequest {
                 code = FLEET_REFRESH_TOKEN, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "refresh_token"
             };
             JsonServiceClient client   = new JsonServiceClient("https://api.tdispatch.com/fleet");
             GetTokensResponse response = client.Post <GetTokensResponse>("oauth2/token", request);
             FLEET_ACCESS_TOKEN = response.access_token;
         }
         catch (Exception)
         {
             GetTokensRequest request = new GetTokensRequest {
                 code = FLEET_AUTH_CODE, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "authorization_code"
             };
             JsonServiceClient client   = new JsonServiceClient("https://api.tdispatch.com/fleet");
             GetTokensResponse response = client.Post <GetTokensResponse>("oauth2/token", request);
             FLEET_ACCESS_TOKEN  = response.access_token;
             FLEET_REFRESH_TOKEN = response.refresh_token;
         }
     }
     try
     {
         APIInfoResponse apiInfoResponse = GetPassengerAPI_Info();
     }
     catch (Exception)
     {
         try
         {
             GetTokensRequest request = new GetTokensRequest {
                 code = PASSENGER_REFRESH_TOKEN, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "refresh_token"
             };
             JsonServiceClient client   = new JsonServiceClient("https://api.tdispatch.com/passenger");
             GetTokensResponse response = client.Post <GetTokensResponse>("oauth2/token", request);
             PASSENGER_ACCESS_TOKEN = response.access_token;
         }
         catch (Exception)
         {
             GetTokensRequest request = new GetTokensRequest {
                 code = PASSENGER_AUTH_CODE, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "authorization_code"
             };
             JsonServiceClient client   = new JsonServiceClient("https://api.tdispatch.com/passenger");
             GetTokensResponse response = client.Post <GetTokensResponse>("oauth2/token", request);
             PASSENGER_ACCESS_TOKEN  = response.access_token;
             PASSENGER_REFRESH_TOKEN = response.refresh_token;
         }
     }
     authorized = true;
     return(true);
 }
        public TokensListResponse Execute(GetTokensRequest request)
        {
            var limit = request.Limit < 10 ? 10 : request.Limit;

            limit = request.Limit > 100 ? 100 : limit;
            var tokens = _gateway.GetAllTokens(limit, request.Cursor, request.Enabled);

            return(new TokensListResponse
            {
                Tokens = tokens,
                NextCursor = GetNextCursor(tokens, limit)
            });
        }
Example #5
0
 public bool Authorize()
 {
     authorized = false;
     try
     {
         APIInfoResponse apiInfoResponse = GetFleetAPI_Info();
     }
     catch (Exception)
     {
         try
         {
             GetTokensRequest request = new GetTokensRequest { code = FLEET_REFRESH_TOKEN, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "refresh_token" };
             JsonServiceClient client = new JsonServiceClient("https://api.tdispatch.com/fleet");
             GetTokensResponse response = client.Post<GetTokensResponse>("oauth2/token", request);
             FLEET_ACCESS_TOKEN = response.access_token;
         }
         catch (Exception)
         {
             GetTokensRequest request = new GetTokensRequest { code = FLEET_AUTH_CODE, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "authorization_code" };
             JsonServiceClient client = new JsonServiceClient("https://api.tdispatch.com/fleet");
             GetTokensResponse response = client.Post<GetTokensResponse>("oauth2/token", request);
             FLEET_ACCESS_TOKEN = response.access_token;
             FLEET_REFRESH_TOKEN = response.refresh_token;
         }
     }
     try
     {
         APIInfoResponse apiInfoResponse = GetPassengerAPI_Info();
     }
     catch (Exception)
     {
         try
         {
             GetTokensRequest request = new GetTokensRequest { code = PASSENGER_REFRESH_TOKEN, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "refresh_token" };
             JsonServiceClient client = new JsonServiceClient("https://api.tdispatch.com/passenger");
             GetTokensResponse response = client.Post<GetTokensResponse>("oauth2/token", request);
             PASSENGER_ACCESS_TOKEN = response.access_token;
         }
         catch (Exception)
         {
             GetTokensRequest request = new GetTokensRequest { code = PASSENGER_AUTH_CODE, client_id = CLIENT_ID, client_secret = CLIENT_SECRET, grant_type = "authorization_code" };
             JsonServiceClient client = new JsonServiceClient("https://api.tdispatch.com/passenger");
             GetTokensResponse response = client.Post<GetTokensResponse>("oauth2/token", request);
             PASSENGER_ACCESS_TOKEN = response.access_token;
             PASSENGER_REFRESH_TOKEN = response.refresh_token;
         }
     }
     authorized = true;
     return true;
 }
Example #6
0
        public async Task GetTokensAsync(GetTokensRequest request)
        {
            await EnsureInGroupAsync(request, false);

            var response = await _service.GetTokensAsync(request);

            SendGroupResponse(response);

            var getUserInfoRequest = new GetUserInfoRequest
            {
                AccessToken = response.AccessToken
            }.LinkTo(response);

            await GetUserInfoAsync(getUserInfoRequest);
        }
Example #7
0
        /// <summary>
        /// Looks up a list of existing token.
        /// </summary>
        /// <param name = "type">token type</param>
        /// <param name = "limit">max number of records to return</param>
        /// <param name = "offset">optional offset to start at</param>
        /// <returns>token returned by the server</returns>
        public Task <PagedList <Token> > GetTokens(
            TokenType type,
            int limit,
            string offset)
        {
            var request = new GetTokensRequest
            {
                Type = type,
                Page = PageBuilder(limit, offset)
            };

            return(gateway(authenticationContext())
                   .GetTokensAsync(request)
                   .ToTask(response =>
                           new PagedList <Token>(response.Tokens, response.Offset)));
        }
Example #8
0
        /// <summary>
        /// Looks up a list of existing token.
        /// </summary>
        /// <param name="type">the token type</param>
        /// <param name="limit">the max number of records to return</param>
        /// <param name="offset">nullable offset to start at</param>
        /// <returns>the tokens in paged list</returns>
        public Task <PagedList <Token> > GetTokens(
            TokenType type,
            int limit,
            string offset)
        {
            var request = new GetTokensRequest
            {
                Type = type,
                Page = new Page
                {
                    Limit = limit
                }
            };

            if (offset != null)
            {
                request.Page.Offset = offset;
            }

            return(gateway(authenticationContext()).GetTokensAsync(request)
                   .ToTask(response => new PagedList <Token>(response.Tokens, response.Offset)));
        }
Example #9
0
        public async Task <ActionResult> Login()
        {
            var formData = Request.Form;

            if (formData == null || !formData.HasKeys())
            {
                return(RedirectToAction(nameof(Index)));
            }

            var request = new GetTokensRequest
            {
                Username = formData["username"],
                Password = formData["password"]
            };
            var response = await _oauthClientService.GetTokensAsync(request);

            if (!response.IsError && !string.IsNullOrWhiteSpace(response.AccessToken) &&
                !string.IsNullOrWhiteSpace(response.RefreshToken))
            {
                return(RedirectToAction(nameof(Home)));
            }

            return(RedirectToAction(nameof(Index)));
        }
Example #10
0
 public IActionResult ListTokens([FromQuery] GetTokensRequest request)
 {
     return(Ok(_getAllTokensUseCase.Execute(request)));
 }
Example #11
0
        public async Task <HttpResponseMessage> GetTokensAsync(GetTokensRequest request)
        {
            var response = await _service.GetTokensAsync(request);

            return(Request.CreateResponse(response));
        }