【发布时间】:2020-09-04 06:30:20
【问题描述】:
这是一个非常烦人的问题。我在我的应用程序中使用第三方登录。当用户通过第三方登录时,它会将 api 调用重定向到服务器。
例如:/api/signin/github?code=test&state=test
由于某些奇怪的原因,这个 API 调用是从服务工作者获取的,而不是在处理登录逻辑的服务器上。
例如:
【问题讨论】:
标签: service-worker progressive-web-apps
这是一个非常烦人的问题。我在我的应用程序中使用第三方登录。当用户通过第三方登录时,它会将 api 调用重定向到服务器。
例如:/api/signin/github?code=test&state=test
由于某些奇怪的原因,这个 API 调用是从服务工作者获取的,而不是在处理登录逻辑的服务器上。
例如:
【问题讨论】:
标签: service-worker progressive-web-apps
如果没有看到你的 service worker 的 fetch 事件处理程序,很难确切地说出是什么代码对此负责。
不过,一般来说,如果您想告诉 Service Worker 永远不要对其响应的 URL,您可以避免在它们触发 fetch 时调用 event.respondWith(...)。有很多方法可以避免这样做,但早期的return 很简单:
self.addEventListener('fetch', (event) => {
const url = new URL(event.request.url);
if (url.pathname === '/api/signin/github') {
// By returning without calling event.respondWith(),
// the request will be handled by the normal browser
// network stack.
return;
}
// Your fetch event response generation logic goes here.
event.respondWith(...);
});
【讨论】: