diff --git a/Controllers/AuthController.cs b/Controllers/AuthController.cs index 37d76b5..f41a8c0 100644 --- a/Controllers/AuthController.cs +++ b/Controllers/AuthController.cs @@ -67,6 +67,18 @@ namespace qbridge.Controllers public async Task GetAsync() { await GetQBDiscoveryDocument(); + if (DiscoveryDoc == null) + { + return Content($"

Error - Unable to fetch Discovery document from QuickBooks Online

Cannot proceed"); + } + + var authorizationEndpoint = DiscoveryDoc["authorization_endpoint"].Value(); + if (string.IsNullOrWhiteSpace(authorizationEndpoint)) + { + return Content($"

Error - Unable to find AuthorizationEndpoint value in Discovery document from QuickBooks Online

Cannot proceed"); + } + + string url = string.Empty; var queryParams = new Dictionary() { @@ -77,8 +89,7 @@ namespace qbridge.Controllers {"state","MyUniqueStateID"} }; - url = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString("https://appcenter.intuit.com/connect/oauth2", queryParams); - // return Content($"AuthUrl: {url}"); + url = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(authorizationEndpoint, queryParams); return Redirect(url); //will ask for login creds and permission then will redirect back to the Get method above with: @@ -93,6 +104,15 @@ namespace qbridge.Controllers public async Task GetQBDiscoveryDocument() { + /* + + issuer:"https://oauth.platform.intuit.com/op/v1", + authorization_endpoint:"https://appcenter.intuit.com/connect/oauth2", + token_endpoint:"https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer", + userinfo_endpoint:"https://accounts.intuit.com/v1/openid_connect/userinfo", + revocation_endpoint:"https://developer.API.intuit.com/v2/oauth2/tokens/revoke", + jwks_uri:"https://oauth.platform.intuit.com/op/v1/jwks", + */ var request = new HttpRequestMessage(HttpMethod.Get, "https://developer.api.intuit.com/.well-known/openid_sandbox_configuration"); request.Headers.Add("Accept", "application/json");