Loggest thine Stuff
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.4 KiB

import cookie from 'cookie';
import { Amplify, withSSRContext } from 'aws-amplify';
import type { GetSession, Handle } from '@sveltejs/kit';
Amplify.configure({
Auth: {
region: import.meta.env.VITE_STUFFLOG3_AWS_POOL_REGION,
userPoolId: import.meta.env.VITE_STUFFLOG3_AWS_POOL_ID,
userPoolWebClientId: import.meta.env.VITE_STUFFLOG3_AWS_POOL_CLIENT_ID,
},
ssr: true,
});
export const getSession: GetSession = ({ locals, request }) => {
return {
idToken: locals.idToken,
req: { headers: { cookie: request.headers.get("Cookie") } }
};
};
export const handle: Handle = async({ event, resolve }) => {
const {Auth} = withSSRContext({
req: { headers: { cookie: event.request.headers.get("Cookie") } }
});
const newCookies = {};
try {
const curr = await Auth.currentAuthenticatedUser();
event.locals.idToken = curr.signInUserSession?.idToken?.jwtToken;
const store = curr?.storage?.store || {};
const cookies = cookie.parse(event.request.headers.get("Cookie"));
for (const key in store) {
if (store[key] != cookies[key]) {
newCookies[key] = store[key]
console.log("Updating", key, store[key]?.slice(-8), cookies[key]?.slice(-8));
}
}
} catch(err) {
console.warn(err)
}
const response = await resolve(event);
for (const key in newCookies) {
response.headers.append("Set-Cookie", cookie.serialize(key, newCookies[key]))
}
return response;
}