diff --git a/lib/models/oidc.ts b/lib/models/oidc.ts index a217f7b..2a0478b 100644 --- a/lib/models/oidc.ts +++ b/lib/models/oidc.ts @@ -21,15 +21,15 @@ interface OidcJwtIdToken extends Record { sub?: string; } +const redirectUrlPath = '/oidc/callback'; + export class OidcModel { static async getSignInUrl( { requestPermissions, - redirectUrlPath = '/oidc/callback', extraState = {}, }: { requestPermissions: string[]; - redirectUrlPath?: string; extraState?: OidcExtraState; }, ): Promise { @@ -154,7 +154,7 @@ export class OidcModel { const tokens = await openIdClient.authorizationCodeGrant( oidcConfig, - new URL(`${baseUrl}?${urlSearchParams.toString()}`), + new URL(`${baseUrl}${redirectUrlPath}?${urlSearchParams.toString()}`), { pkceCodeVerifier: expectedCodeVerifier, expectedState, diff --git a/routes/_middleware.tsx b/routes/_middleware.tsx index 182fca7..6183a16 100644 --- a/routes/_middleware.tsx +++ b/routes/_middleware.tsx @@ -5,7 +5,9 @@ import { getDataFromRequest } from '/lib/auth.ts'; export const handler = [ async function handleCors(request: Request, context: FreshContext) { - if (request.method == 'OPTIONS') { + const path = new URL(request.url).pathname; + + if (request.method == 'OPTIONS' && path !== '/dav' && !path.startsWith('/dav/')) { const response = new Response(null, { status: 204, });