- Se sirve al cliente mediante tu propio backend.
- Tiene el mismo dominio que tu backend.
- Hace llamadas a la API de tu backend que requieren autenticación.
Cómo funciona

- El usuario accede a una ruta protegida desde el navegador o realiza alguna acción que requiere iniciar un paso de autenticación (como hacer clic en un botón de inicio de sesión)
- El cliente del navegador redirige a una ruta
/loginen el backend o a la ruta protegida, según lo que haya hecho el usuario - El backend construye una solicitud al endpoint
/authorizedel Servidor de autorización y redirige allí al cliente del navegador - Se pide al usuario que se autentique con el método que presente el Servidor de autorización
- El Servidor de autorización envía los tokens mediante POST al URI de redirección como un formulario codificado en URL. El backend puede recuperar esos tokens analizando los datos del cuerpo.

Ejemplo
Requisitos previos
- Para seguir este tutorial, asegúrate de tener instalada la última versión de Node.
-
Una vez instalado Node, descarga o clona el código fuente y abre la carpeta del proyecto en una ventana de terminal.
-
La rama
masterrepresenta el estado de la aplicación antes de añadir cualquier método de autenticación. Si quieres consultar la versión final de la aplicación, cambia a la ramawith-oidc:git checkout with-oidc
Inicializa la aplicación de Node.js
npm install desde la terminal. Para ejecutar la aplicación, usa npm run dev. Este comando inicia el servidor Express. Ve a http://localhost:3000 en tu navegador para ver la aplicación.
El servidor de desarrollo usa nodemon, que se reinicia automáticamente cada vez que detecta cambios en algún archivo.
Explora la aplicación

Configurar el entorno
express-openid-connect requiere algunas variables de entorno. En esta aplicación, estas variables pueden especificarse en un archivo .env. Cree un archivo .env en la raíz del directorio del proyecto y complételo con lo siguiente:
.env
Configura la aplicación en Auth0
- Ve a Dashboard > Applications > Applications y haz clic en Create Application.
- Asigna un nombre a la nueva aplicación, selecciona Regular Web Applications y haz clic en Create
-
En Settings de la nueva aplicación, agrega
http:/localhost:3000/callbacka Allowed Callback URLs. -
Agrega
http:/localhost:3000a Allowed Logout URLs. - Haz clic en Save Changes.
- Ve a Dashboard > Authentication > Social y configura algunas conexiones sociales. Habilítalas para la aplicación en las opciones de Application de la pestaña Connections. En el ejemplo se usan una base de datos de username/password, Facebook, Google y X.
- En la pantalla Settings, toma nota del dominio y del ID de cliente que aparecen en la parte superior.
-
Hay dos valores que debes configurar como parte de la aplicación. Vuelve a abrir el archivo
.envy establece estos valores:
Ejecuta la aplicación
- Con la configuración del servidor y del entorno completada, busca la ventana del navegador donde tienes abierta la aplicación. Si has cerrado el navegador y detenido el servidor, ejecuta lo siguiente en la terminal para reiniciar la aplicación:
npm run dev - Abre
http://localhost:3000en el navegador. En términos de interfaz de usuario, la aplicación debería verse igual; sin embargo, esta vez, cuando hagas clic en el botón Call API, deberías recibir una advertencia indicando que el usuario no ha iniciado sesión. Fíjate también en que ya no ves el mensaje “Hello, World” como antes, ya que la llamada a la API ha sido rechazada. - Haz clic en Log in now para iniciar sesión. Una vez que te hayas autenticado, volverás a la aplicación y verás una interfaz actualizada que refleja tu nuevo estado de inicio de sesión. Deberías poder pulsar el botón Call API una vez más para hacer una llamada a la API del servidor, y ahora sí funcionará.
- Haz clic en el enlace Profile en la parte superior de la página para mostrar la información del usuario recuperada del ID Token.