AspNet.Security.OpenIdConnect.Server令牌吊销和注销不起作用

AspNet.Security.OpenIdConnect.Server令牌吊销和注销不起作用,openid,asp.net-core-webapi,openid-connect,openiddict,aspnet-contrib,Openid,Asp.net Core Webapi,Openid Connect,Openiddict,Aspnet Contrib,我已经配置了撤销和注销端点,如下所述 .AddOpenIdConnectServer(options => { options.LogoutEndpointPath = "/logout"; options.RevocationEndpointPath = "/revoke"; } 但两者都不起作用。令牌吊销没有使令牌过期/吊销令牌 对于令牌撤销, 我调试了代码,发现它拒绝了下面提到的代码中OpenIdConnectServerHandler类中的上下文 var cont

我已经配置了撤销和注销端点,如下所述

.AddOpenIdConnectServer(options =>
{
    options.LogoutEndpointPath = "/logout";
    options.RevocationEndpointPath = "/revoke";
}
但两者都不起作用。令牌吊销没有使令牌过期/吊销令牌

对于令牌撤销, 我调试了代码,发现它拒绝了下面提到的代码中OpenIdConnectServerHandler类中的上下文

var context=newvalidateResortRequestContext(上下文、方案、选项、请求);等待提供者。验证请求(上下文)

在上述方法之后,context.IsRejected为true

请求(post)包含clientId、clientsecret、作为访问令牌的令牌或刷新令牌和令牌提示类型。我无法得出结论,为什么会发生这种情况

更新1:

通过下面提到的代码进行上下文验证

public override异步任务validateResorteRequest(validateResorteContext){context.Validate();}

现在,通过调试ASOS代码,我知道没有用于令牌撤销的内置逻辑,对吗?如果是这种情况,那么我需要编写我的自定义逻辑来撤销中的令牌

public override异步任务HandleRevocationRequest(HandleRevocationRequestContext){..code}

现在我想知道撤销令牌(访问和刷新)的方法是什么,因为它们是自包含的,不像openiddict那样存储在DB中(我已经查看了openiddict的撤销逻辑)

现在,通过调试ASOS代码,我知道没有用于令牌撤销的内置逻辑,对吗?如果是这种情况,那么我需要编写我的自定义逻辑来撤销中的令牌

没错:ASOS是完全无状态的

如何实现这一点完全是你自己的决定。您可以使用一个表来存储令牌条目,如OpenIddict(由
Serialize*token
事件创建)或带有已撤销令牌标识符的黑名单

更多信息请点击此处: