set and use access-token cookie

This commit is contained in:
Erik Larsson
2021-02-18 03:35:45 +01:00
parent 813c6a4f20
commit f18b51d932
3 changed files with 53 additions and 2 deletions
+15 -1
View File
@@ -82,9 +82,15 @@ export async function createRouter({
const { kind, namespace, name } = req.params;
try {
const token =
getBearerToken(req.headers.authorization) ||
req.cookies['access-token'];
const entity = (await (
await fetch(
`${catalogUrl}/entities/by-name/${kind}/${namespace}/${name}`,
{
headers: token ? { Authorization: `Bearer ${token}` } : {},
},
)
).json()) as Entity;
@@ -109,7 +115,11 @@ export async function createRouter({
const catalogUrl = await discovery.getBaseUrl('catalog');
const triple = [kind, namespace, name].map(encodeURIComponent).join('/');
const catalogRes = await fetch(`${catalogUrl}/entities/by-name/${triple}`);
const token =
getBearerToken(req.headers.authorization) || req.cookies['access-token'];
const catalogRes = await fetch(`${catalogUrl}/entities/by-name/${triple}`, {
headers: token ? { Authorization: `Bearer ${token}` } : {},
});
if (!catalogRes.ok) {
const catalogResText = await catalogRes.text();
res.status(catalogRes.status);
@@ -202,3 +212,7 @@ export async function createRouter({
return router;
}
function getBearerToken(header?: string): string | undefined {
return header?.match(/(?:Bearer|Basic)\s+(\S+)/i)?.[1];
}