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
事件创建)或带有已撤销令牌标识符的黑名单
更多信息请点击此处: