我使用Angular 2在Web应用程序中实现了身份验证机制。
我将使用JSON Web Token。这里描述了两种类型的令牌:访问令牌(短期)和刷新令牌(长期存在):https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
我想要获得结果,这在使用会话/ cookie时很常见。 在用户不活动一段时间后,用户已退出。这基本上意味着浏览器显示登录页面,并且在使用JWT的情况下,令牌将从浏览器localStorage或存储cookie中删除。
我没有看到如何执行此操作的方式,仅在Access和Refresh令牌上进行关联。
当Access令牌过期时(例如,每10分钟),使用刷新令牌(每8小时到期)请求新令牌。但是当用户不活动时例如。 1小时?刷新令牌仍然有效,因此下一次用户交互将导致获取新的Access令牌,用户窗台可以使用该应用程序。
也许有一些Angular2或JavaScript机制,如果用户不活动,执行某些操作或重定向到登录页面?
答案 0 :(得分:0)
仅上次用户活动的缓存时间戳(对于要运行定期检查的用户),并在刷新阈值超过阈值时撤消刷新令牌+从该缓存中删除用户。如果您真的需要这种行为。如果您接受服务器端解决方案。
如果您是指Angular客户端解决方案,只需在给定的闲置时间后忘记令牌对即可。
答案 1 :(得分:0)
如果您想使用令牌作为标记来终止会话,只是不刷新它,只需设置较短的生存时间,当服务器回复401时,注销用户。对于这种方法,您必须在每次用户交互后生成一个新令牌。
答案 2 :(得分:-1)
您可以实施一些客户端规则,即每当访问令牌过期时将其重定向到登录页面,或者您可以锁定用户的屏幕以再次提供输入凭证。请查看angular2 JWT的功能