使用angular-oauth2-oidc进行Angular 9身份验证

时间:2020-06-06 18:17:34

标签: angular angular-oauth2-oidc

我正在Angular 9应用程序中使用angular-oauth2-oidc软件包进行评估。我一直在研究有效的示例found here

当我运行示例示例并打开两个单独的浏览器会话(Chrome),并尝试使用提供的两个用户名/密码登录时,我注意到以下内容:

  1. 当我退出一个浏览器时,其他浏览器退出。
  2. 当我登录一个浏览器并尝试登录第二个浏览器时 (使用其他用户帐户),它会自动以我的身份登录 必须认证
  3. 注销后,我注意到sessionStorage已删除,但我仍然 单击登录后自动登录。

这是预期的功能吗?似乎很奇怪的行为。任何人都可以推荐我如何配置 angular-oauth2-oidc克服了突出显示的这个问题?

1 个答案:

答案 0 :(得分:0)

根据您的情况,我看到了登录状态并且信息已保存在会话存储中。即使您从多个标签中打开,同一网站的会话存储空间也相同。

因此,当您从一个选项卡注销时,登录状态将在共享会话存储中更改。并删除登录信息。因此,所有打开的水龙头都会从会话存储中读取用户已注销的信息。

因此,从单个浏览器访问每个网站只有一个会话存储空间的情况下,这是正常的,您只能以一个用户的身份登录该网站。

如果您想使用不同的浏览器登录不同的用户。

如果让用户多次单击来与其他用户登录很重要,那么您必须:

  • 请勿让angular-oauth2-oidc包使用sessionStorage,localStorage,而应使用自定义存储,该存储是仅在运行时位于代码内部的服务。但是刷新后,所有内容都会丢失,您需要重新登录。
  • 请勿让身份服务器的登录页面在Cookie上存储任何内容。所以你应该删除记住我。因为有多个用户登录,并且您不知道谁的会话结束才能刷新他的会话,所以他必须再次输入他的凭据