Spaces:
Running
Running
| import cookie from 'cookie'; | |
| import { v4 as uuid } from '@lukeed/uuid'; | |
| import type { Handle } from '@sveltejs/kit'; | |
| export const handle: Handle = async ({ request, resolve }) => { | |
| const cookies = cookie.parse(request.headers.cookie || ''); | |
| request.locals.userid = cookies.userid || uuid(); | |
| // TODO https://github.com/sveltejs/kit/issues/1046 | |
| const method = request.url.searchParams.get('_method'); | |
| if (method) { | |
| request.method = method.toUpperCase(); | |
| } | |
| const response = await resolve(request); | |
| if (!cookies.userid) { | |
| // if this is the first time the user has visited this app, | |
| // set a cookie so that we recognise them when they return | |
| response.headers['set-cookie'] = cookie.serialize('userid', request.locals.userid, { | |
| path: '/', | |
| httpOnly: true | |
| }); | |
| } | |
| return response; | |
| }; | |