用Angular WebApi注销:错误选项

时间:2019-03-29 09:58:56

标签: c# asp.net-core logout openiddict

当我通过WebApi与角度应用程序断开连接时,我的请求在通话OPTIONS期间被拒绝

我使用OpenIddictAsp.Net core 2.2,并称为此方法

[HttpGet("~/connect/logout")]
public async Task<IActionResult> Logout()
{
    await _signInManager.SignOutAsync();
    return SignOut(OpenIddictServerDefaults.AuthenticationScheme);
}

我有这个错误

  

信息:Microsoft.AspNetCore.Hosting.Internal.WebHost [1]         请求启动HTTP / 1.1选项http://localhost:44300/connect/logout失败:   OpenIddict.Server.Internal.OpenIddictServerHandler [0]         注销请求被拒绝,因为指定了无效的HTTP方法:OPTIONS。信息:   OpenIddict.Server.Internal.OpenIddictServerHandler [0]         注销响应已成功作为纯文本文档返回:{           “错误”:“ invalid_request”,           “ error_description”:“指定的HTTP方法无效。”         }。

我的其他API没有问题

1 个答案:

答案 0 :(得分:0)

发送OPTIONS请求的事实(在这种情况下很可能是预检CORS请求)使我认为您尝试将注销端点用作“ API端点”,这并非出于目的。

非常类似于授权端点,注销端点是一个交互式端点,旨在与良好的旧重定向以及可选的同意屏幕一起使用,以通知用户他或她将要注销(因此,可以防止不必要的注销,通常被视为定向的“ DOS”攻击。

假设您不需要同意屏幕,请考虑在隐藏的iframe中发送注销请求,而不要使用XMLHttpRequest。