Necesito redirigir a nuestros usuarios a un formulario SSO que está a cargo de otro equipo. Este formulario (no es una aplicación next.js) está en el mismo dominio que la aplicación next.js. Trato de seguir https://nextjs.org/docs/authentication#authentication-server-rendered-pages pero no puedo averiguar cómo obtener la URL actual, así que puedo decirle al SSO que redirija de nuevo una vez que la autenticación esté finalizar.
return { redirect: { destination: `/sso/form?redirect=${currentUrl}`, permanent: false, }, }¿Alguna idea sobre cómo obtener la URL actual?
El contexto contiene una propiedad llamada resolvedUrl correspondiente a la ruta actual.
const { resolvedUrl, req } = context; const baseUrl = getBaseUrl(req); const currentUrl = `${baseUrl}${resolvedUrl}`; getBaseUrl es una función auxiliar que devuelve la URL base de nuestra aplicación nextjs actual.
La redirección que está haciendo en getServerSideProps se realiza en el servidor, por lo que no se puede acceder a la información de dom en ese nivel. Tienes que pasar la información de la ruta al servidor en una cookie o algo así.
De todos modos, si no me equivoco, redirecciona a SSO cuando intenta cargar una página y la autenticación falla. Esta autenticación ocurre en getServerSideProps para que pueda codificar la URL de redirección de SSO porque llama a un getServerSideProps diferente cada vez que visita una página nueva.