我有一个通过Shibboleth认证的Angular应用。当用户导航到页面时,NGINX会将其重定向到Shibboleth登录名。对应用程序的访问由NGINX管理。如果用户已登录并进入该应用程序,则他们可能会在其中停留相当长的时间。 Shibboleth登录超时,但是Angular应用程序不知道这一点,这导致该应用程序必须与之通信的服务出现问题。 如何让Angular检查Shibboleth是否已登录? 或者(作为一种解决方法)当用户单击提交按钮以使用服务时,如何强制浏览器刷新(这会导致NGINX检查登录状态)?
谢谢
答案 0 :(得分:1)
如果我的意思是对的, 您有一个应用https://example.com。
您已在这方面实施了SP,并已受整个授权网站的保护-没有任何特定路径。因此,每当用户访问网站时,nginx都会验证用户某些IdP。
现在的问题是,当您在角度应用程序中导航时,由于使用pushState实现,因此请求不会转到nginx,因此您无法检查用户会话是否处于活动状态。
如果是
然后,我相信您将需要在angular应用程序中创建一个auth-gaurd,该程序会检查每页上的有效会话-将在每条路由中注入的auth保护。
您可以使用以下网址检查会话的有效性, https://example.com/Shibboleth.sso/Session https://example.com/Shibboleth.sso/Status