Environment variable
PASSWORD="mypassword"
Hooks
import { PASSWORD } from '$env/static/private';
import { redirect } from '@sveltejs/kit';
export const handle = (async ({ event, resolve }) => {
if (!event.url.pathname.startsWith('/password')) {
const password = event.cookies.get('password');
if (password !== PASSWORD) throw redirect(307, '/password');
}
const response = await resolve(event);
return response;
})
Password page
<form method="POST">
<input type="password" name="password">
<button type="submit">Submit</button>
</form>
import { PASSWORD } from '$env/static/private';
import { redirect } from '@sveltejs/kit';
export const actions = {
default: async ({cookies, request}) => {
const data = await request.formData();
const password = data.get('password')?.toString() || '';
cookies.set('password', password, {
path: '/',
});
if (password == PASSWORD ) throw redirect(307, '/');
}
}