Home > Back-end >  REST Api is not returning expected data
REST Api is not returning expected data

Time:08-30

I wrote an Auth API where it should retrieve the details from my user, but I'm getting error 404 instead. All my users are stored in an Azure Storage Account, and I was using the TableClient class to handle with my table. However I am not able to go any further when I started to do this Auth. I spent over one week only on this function, and I got no progress on this, here is my code:

[FunctionName(nameof(Auth))]
        public static async Task<IActionResult> Auth(
            [HttpTrigger(AuthorizationLevel.Admin, "POST", Route = "auth")] HttpRequest req,
            [Table("User", Connection = "AzureWebJobsStorage")] TableClient tdClient,
            ILogger log)
        {
            string url = String.Format("http://localhost:7235/api/");

            HttpMessageHandler handler = new HttpClientHandler()
            {
            };

            var httpClient = new HttpClient(handler)
            {
                BaseAddress = new Uri(url),
                Timeout = new TimeSpan(0, 2, 0)
            };

            httpClient.DefaultRequestHeaders.Add("ContentType", "application/json");

            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("[email protected]:pass1234");
            string val = System.Convert.ToBase64String(plainTextBytes);
            httpClient.DefaultRequestHeaders.Add("Authorization", "Basic "   val);


            HttpResponseMessage response = httpClient.GetAsync(url).Result;
            return new OkObjectResult(response);
        }

How can auth my user using this class? Iam doing on the right way?

Thanks.

CodePudding user response:

Debugging any API issues by looking at just the code, is (as you have discovered) a horribly painful process.

I'd strongly recommend using a MITM proxy (like burp) to get visibility of exactly what is sent to, and received from the API. By using this approach, it generally becomes really obvious what is wrong.

If you can't use this approach, then enable logging for the raw HTTP request and response, as outlined in this guide.

  • Related