diff options
Diffstat (limited to 'src/routes/login/+server.ts')
| -rw-r--r-- | src/routes/login/+server.ts | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/routes/login/+server.ts b/src/routes/login/+server.ts index 4a032d4..7313f13 100644 --- a/src/routes/login/+server.ts +++ b/src/routes/login/+server.ts @@ -1,10 +1,13 @@ import { getAuthorizeUrl } from '$lib/auth.server.js'; -import { error, redirect } from '@sveltejs/kit'; +import { redirect } from '@sveltejs/kit'; export const GET = async (event) => { let target = event.url.searchParams.get('next') ?? '/'; - let desiredScopes = - event.url.searchParams.get('scope') ?? 'profile vm-own-read'; + let desiredScopes = event.url.searchParams.get('scope') ?? 'default'; + desiredScopes = desiredScopes + .split(' ') + .flatMap((v) => (v === 'default' ? 'vm-own-read vm-own-write' : '')) + .join(' '); if (new URL(target, event.url.href).host !== event.url.host) target = '/'; const existingScopes = (event.cookies.get('oid__scopes') ?? '').split(' '); const authed = await event.locals.auth(); @@ -44,11 +47,14 @@ export const GET = async (event) => { event.cookies.delete('pending-auth-nonces', { path: '/', }); - event.cookies.delete('next', { - path: target, + event.cookies.set('next', target, { + path: '/', }); throw redirect(303, redirectTo); } else { + event.cookies.delete('next', { + path: '/', + }); throw redirect(303, target); } }; |