关闭浏览器后如何删除“使用PKCE进行授权代码流”会话

时间:2019-12-22 09:06:25

标签: angular authentication asp.net-core identityserver4

我已经使用Identity Server 4,Angular 8客户端和ASP.NET Web API实现了带有代码交换证明密钥(PKCE)的授权代码流。我这样做的方法是遵循快速入门here。它也在使用无提示刷新。

快乐流程起作用:用户可以登录;并且如果他明确地登录或关闭了浏览器;会议结束,他需要再次登录。

在某些情况下,这种情况不会发生;更具体地说,如果选择了Chrome或Firefox中的“记住我离开的地方” 选项。在这种情况下,浏览器只需记住会话,并且如果用户在数小时或数天后启动浏览器,他仍将登录到该站点。由于该网站将在共享计算机上使用,因此如果用户未明确注销,则这是一个潜在的安全问题。

我对如何处理此案有些疑惑。我希望会话始终在关闭浏览器时结束。有人可以为我指出如何使用Identity Server 4实现这一目标的正确方向吗?

1 个答案:

答案 0 :(得分:1)

您可以采取一些措施来解决此问题:

  • 将auth令牌的存储更改为 sessionStorage ,应在关闭浏览器后将其清除(我找不到任何证明记住我离开的地方 >设置会影响sessionStorage)
  • 关闭浏览器标签或整个浏览器时,明确注销用户:Javascript auto logout code
  • 不使用静默令牌更新,而是手动执行此操作(这涉及一些额外的代码,实现Angular拦截器,以在现有令牌过期时请求新令牌并进行重置)。我认为这是一种解决方法,并且需要大量的额外工作,尤其是因为您已经使用了一个不错的客户端来为您处理有关身份验证和授权的所有事情。