我编写了一个Auth API,它应该从我的用户那里检索详细信息,但我得到的却是错误404。我的所有用户都存储在Azure存储帐户中,我使用TableClient类来处理我的表。然而,当我开始做这个AUTH时,我无法再走得更远了。我只在这个函数上花了一周多的时间,但在这个函数上没有任何进展,以下是我的代码:
[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("roy.mitchel@somecompany.com:pass1234");
string val = System.Convert.ToBase64String(plainTextBytes);
httpClient.DefaultRequestHeaders.Add("Authorization", "Basic " + val);
HttpResponseMessage response = httpClient.GetAsync(url).Result;
return new OkObjectResult(response);
}
如何使用此类对我的用户进行身份验证?我在做正确的事情吗?
谢谢。
1条答案
按热度按时间z5btuh9x1#
通过只查看代码来调试任何API问题,是一个极其痛苦的过程(如您所发现的)。
我强烈建议使用MITM代理(如burp)来准确了解API发送和接收的内容。通过使用这种方法,错误之处通常变得非常明显。
如果您不能使用这种方法,那么为原始的HTTP请求和响应启用日志记录,如guide中所述。