Slide 25
Slide 25 text
実装(フロント)
● getIdTokenの際にtokenが取得で
きるかをみて
リダイレクトさせる
● httpRequestの際にリクエストをプ
ロキシすることができるので同じ
ホストの場合
Headerに追加する
● 公式で公開されているコードがあ
るのでそちらを見ながら
触ってみると良いかと
self.addEventListener("fetch", (event: Event) => {
const fetchEvent = event as FetchEvent;
const requestProcessor = (idToken: string | null) => {
let req = fetchEvent.request;
let processRequestPromise = Promise.resolve();
if (self.location.origin == getOriginFromUrl(fetchEvent.request.url)) {
const headers = new Headers();
for (let entry of req.headers.entries()) {
headers.append(entry[0], entry[1]);
}
headers.append("Authorization", "Bearer " + idToken);
processRequestPromise = getBodyContent(req).then((body) => {
req = new Request(req.url, {
method: req.method,
headers: headers,
mode: "same-origin",
credentials: req.credentials,
cache: req.cache,
redirect: req.redirect,
referrer: req.referrer,
body: body as string,
});
});
}
return processRequestPromise.then(() => fetch(req));
};
fetchEvent.respondWith(getIdToken().then(requestProcessor));
});