重新启动后IdentityServer4仍然登录

时间:2018-07-12 09:37:58

标签: identityserver4

我在本地主机上设置了IdentityServer4实例。 我从ui示例屏幕登录,没有检查记住我的登录信息。 然后,我重新启动服务器,但我仍然登录。 IS4依靠什么来检索会话/用户数据?会话不会持久存在,因此我认为它确实从cookie中获取了数据?

1 个答案:

答案 0 :(得分:0)

IdentityServer4使用cookie authentication

由于浏览器和IdentityServer4在同一台计算机上,因此这意味着您的浏览器已配置为保留cookie。如果将其更改为“关闭时删除Cookie”,则表示您在重新启动时注销。

关于令牌:登录时,IdentityServer4发送存储在(https)cookie中的访问令牌。访问令牌可以有两种类型,refence and self-contained (JWT)。尽管参考令牌的行为可能相同,但很可能您正在使用JWT令牌。

JWT令牌具有某些特征:

  • 自成体系(独立生活)

  • 根据令牌中存储的信息来识别用户

  • 不能更改

  • 生存直到过期

  • 一旦发布,就很难被撤销

服务器使用签名凭证对JWT令牌进行编码。它还需要这些凭证来解码和验证令牌。只要什么都没有改变,令牌就可以被验证。

在您的情况下,登录凭据似乎是固定的(证书?),因为重新启动IdentityServer4不会影响令牌的验证。另一方面,浏览器仍将令牌存储在cookie中。因此,重启后实际上没有任何改变。 IdentityServer4处于相同状态,访问令牌只是从cookie中读取。

如果要改用DeveloperSigningCredentials(AddDeveloperSigningCredential),则行为是访问令牌无效。作为解码和验证令牌的密钥,重新启动时已更改。并且当访问令牌丢失(cookie被删除)时,您将不得不再次登录。