我正在使用 Google 的 Workbox 库来缓存文件。我还想使用服务人员滚动我的自定义身份验证。因此,我阅读了有关如何拦截请求和添加标头的指南:https ://itnext.io/using-service-worker-as-an-auth-relay-5abc402878dd 。
但是,我想知道这是否会破坏 Workbox 的逻辑?我应该将身份验证代码放在 precacheAndRoute() 下方吗?我通过 Workbox 缓存的静态文件不需要我的身份验证标头。
我正在使用 Google 的 Workbox 库来缓存文件。我还想使用服务人员滚动我的自定义身份验证。因此,我阅读了有关如何拦截请求和添加标头的指南:https ://itnext.io/using-service-worker-as-an-auth-relay-5abc402878dd 。
但是,我想知道这是否会破坏 Workbox 的逻辑?我应该将身份验证代码放在 precacheAndRoute() 下方吗?我通过 Workbox 缓存的静态文件不需要我的身份验证标头。
Workbox 的“路由”部分precacheAndRoute()响应预缓存清单fetch中的 URL 事件。
fetch如果事件与不在预缓存清单中的 URL 相关联,它将不会做任何事情。(即它不会调用FetchEvent.respondWith(),其他处理程序将有机会响应。)
在您自己的事件处理程序中添加您自己的自定义逻辑fetch应该与precacheAndRoute().
(对于那些需要身份验证的请求,您可能可以使用 Workbox 的运行时缓存,以及在发出网络请求之前添加标头的自定义requestWillFetch插件。但这取决于您!)