Polymer Service Worker Precache

时间:2018-02-14 12:44:25

标签: spring polymer service-worker

我有一个Spring Boot应用程序从它的静态文件夹中提供Polymer入门套件。 UI-Application通过处理Oauth2单点登录的Zuul代理提供。一旦用户通过身份验证,就会设置一个带有JSESSIONID的cookie。

当我想从UI注销时,我向Zuul的/ logout端点发出POST请求,因此会话被破坏。成功注销后,我通过location.reload()重新加载页面,这会将我重定向到登录视图,因为Zuul的Singe Sign On客户端将检测到不存在的会话。

上述工作正常,直到服务工作者开始工作。在location.reload()上,服务工作者将为所有缓存页面提供服务,而不是尝试对我的API执行某些请求(只有经过身份验证的用户才能访问) 。结果是401响应,它在执行注销的错误处理程序中处理,从而导致无限循环。

现在的问题是,如何在邮寄/退出后避免服务工作者正在处理我的请求?

我无法控制JSESSIONID cookie,因为它是使用HTTP-Only设置的。

到目前为止我尝试了什么: 而不是location.reaload我做location.replace(location.origin + "/logout")并将navigateFallbackWhitelist添加到:"^(?!.*\.html$|\/uaa\/|\/utr\/|\/logout\/).*"但没有成功。

1 个答案:

答案 0 :(得分:1)

location.reload(true)可以解决问题。