NuxtN
Nuxt17mo ago
5 replies
-

Nuxt-auth causing 500 Server Error due to invalid url passed to `new URL`.

What is the callbackUrl property of a SessionRequired error in nuxt-auth supposed to hold?

See here: https://github.com/sidebase/nuxt-auth/blob/734953f89bd19192540452d9e0fbb225d01b28c3/src/runtime/middleware/auth.ts#L99

  if (authConfig.provider.type === 'authjs') {
    const signInOptions: Parameters<typeof signIn>[1] = { error: 'SessionRequired', callbackUrl: determineCallbackUrl(authConfig, () => to.fullPath) }
    // eslint-disable-next-line ts/ban-ts-comment
    // @ts-ignore This is valid for a backend-type of `authjs`, where sign-in accepts a provider as a first argument
    return signIn(undefined, signInOptions) as ReturnType<typeof navigateToAuthPages>
  }


I'm asking because this causing me 500 errors, because the final URL is invalid when passed to
new URL
. Basically, when I visit http://localhost:3000/welcome and
/welcome
is protected. The value of
callbackUrl
is determiend to be
"/welcome"
(which is the exact same value as
to.fullPath
, actually it is taken from it).

So, I tried to manually set it to include the hostname and proto (e.g.
"http://localhost:3000/welcome"
) but then it causes an infinite redirect to the same page.

I've already tried setting up the correct env variables and
baseURL
but to no avail. The server always throws a 500 Error due to invalid value passed to
new URL
, but then somehow the client doesn't have this error and redirect to the auth page.

More context:
* using authjs
* using Keycloak provider (only provider).
* Already added
NUXT_AUTH_ORIGIN=http://localhost:3000

* Already tried with and without
baseURL
GitHub
Authentication built for Nuxt 3! Easily add authentication via OAuth providers, credentials or Email Magic URLs! - sidebase/nuxt-auth
nuxt-auth/src/runtime/middleware/auth.ts at 734953f89bd19192540452d...
Was this page helpful?