如何在Angular 2 / Java Spring Boot中处理会话超时

时间:2017-07-12 14:28:30

标签: angular spring-boot session-timeout angular-services

我们有一个带有java spring boot后端的angular 2应用程序。在Spring后端,我们在YAML配置文件中设置了1小时的会话超时(出于测试目的,我将其更改为1分钟)。会话超时后,令牌不再经过身份验证,用户需要再次登录才能恢复/启动应用程序。

会话超时后,角度应用应将用户重定向到登录页面。无论用户活动/空闲状态如何,它都应该这样做。

我坚持的是在会话超时后如何将angular 2 app中的用户重定向到登录页面。我想知道在哪里以及如何实现这个?在服务类?在用户服务类中(我有一个用户服务类,它从spring后端检索登录的用户信息)。应用程序中的每个组件都需要检查会话状态吗?

想知道角度2的最佳做法。

谢谢!

1 个答案:

答案 0 :(得分:2)

用户登录后,您可以启动一小时计时器(可以使用Observable.timer),并在计时器完成时导航到登录/注销(使用router.navigate)。

或者您可以创建自定义Http服务并将其用于所有后端调用。在自定义服务中,从后端收到错误后导航到注销/登录。 请参阅https://stackoverflow.com/a/44929725/7710727