Cookies IdentityServer4外部注销不可用';t删除谷歌登录cookie

Cookies IdentityServer4外部注销不可用';t删除谷歌登录cookie,cookies,identityserver4,Cookies,Identityserver4,我在Google登录下注销我的identityServer时遇到问题。我可以通过谷歌(外部)登录,没有任何问题,但注销从未工作。在点击“注销”后,我总是收到一条消息,上面写着“你现在已注销”。但当我再次尝试登录时,我总是在点击Googol按钮后立即登录。我的Chrome开发工具显示,与我的Google登录相关联的cookie留在那里,不管我是否单击注销 如果我通过Chrome清除cookie,我将能够进入谷歌登录页面 在注销时尝试删除程序中的cookie时,我尝试了AccountControl

我在Google登录下注销我的identityServer时遇到问题。我可以通过谷歌(外部)登录,没有任何问题,但注销从未工作。在点击“注销”后,我总是收到一条消息,上面写着“你现在已注销”。但当我再次尝试登录时,我总是在点击Googol按钮后立即登录。我的Chrome开发工具显示,与我的Google登录相关联的cookie留在那里,不管我是否单击注销

如果我通过Chrome清除cookie,我将能够进入谷歌登录页面

在注销时尝试删除程序中的cookie时,我尝试了AccountController的注销函数中的以下代码。我看着代码在调试模式下执行,但这没有任何区别——代码执行后cookie仍然在那里,我仍然可以直接进入

有人能告诉我我在这里遗漏了什么吗?还是说不可能从代码中删除cookie


要执行上游注销,IDP(谷歌)必须支持RP发起的注销规范:

然而,Google的discovery endpoint()并没有宣传一个
end_session_endpoint
,因此我们不得不得出结论,Google不支持它


但是,您可以在
authorization\u端点
请求中使用
prompt=login
max\u age={number of seconds}
,再次强制进行交互式身份验证。当您在回调中收到
id\u令牌
时,您可以验证
auth\u time
声明是否符合您决定的任何条件。最终的结果是,你可以坚持要求用户在每次往返谷歌时以交互方式进行身份验证。如果过去
auth\u time
太长,您将阻止建立本地会话。

谢谢@mackie!我想我理解谷歌不支持上游注销。但我认为我的问题是本地的,不是谷歌的,不是上游注销,因为我的cookie不能删除。如果我手动清除cookie,我就没事了。你是说我的代码不能删除cookie的原因是因为Google不支持它吗?我在这里有点困惑。请原谅我的无知,我对这些东西还是相当陌生的-如果没有谷歌支持上述规范,你不能通过IDP删除谷歌的auth cookie,因为你无法直接为其他来源操作cookie。该解决方案允许您强制他们重新登录,即使严格来说他们不必再次登录。感谢@mackie的澄清!但是,不管是否调用注销,解决方法都是一样的,对吗?假设谷歌尊重提到的参数,是的。这种可能性很高,但同时作为
提示符
最大年龄
是核心OIDC规范的一部分。