【发布时间】:2020-09-28 00:21:35
【问题描述】:
我无法弄清楚为什么我的 API 针对未经授权的调用返回 OK 状态消息。 这是我的启动配置方法
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger(options => options.RouteTemplate = _swaggerConfigurations.JsonRoute);
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint(_swaggerConfigurations.UiEndPoint, _swaggerConfigurations.Name);
});
}
else
{
app.UseExceptionHandler(builder =>{
builder.Run(async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
var error = context.Features.Get<IExceptionHandlerFeature>();
if (error != null)
{
context.Response.AddApplicationError(error.Error.Message);
await context.Response.WriteAsync(error.Error.Message);
}
});
});
}
app.UseCors(x => x.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}
控制器动作方法:
[HttpPost(ApiRoutes.Auth.Login)]
public async Task<IActionResult> Login(UserToLoginDto dto)
{
var loggedInResult = await _authService.Login(dto);
if (loggedInResult == null)
return Unauthorized();
return Ok(loggedInResult);
}
我正在使用 Angular 来调用此方法。 每次都返回这个。
请让我知道我在这里做错了什么。
【问题讨论】:
-
这是获取令牌的请求吗?
-
@pc_coder 是的,此请求将在成功时返回令牌,在失败时将返回未经授权。
-
你试过用邮递员来获取令牌吗?我不确定令牌请求是否包含 api 前缀。
-
@pc_coder 感谢您的时间和精力 :) 实际上我已经解决了这个问题。
标签: angular api .net-core http-error