Tutorial: Creación de una aplicación web de Node.js para que los usuarios inicien sesión
Este tutorial es la parte 2 de una serie que muestra cómo crear una aplicación web de Node.js y prepararla para la autenticación mediante el Centro de administración Microsoft Entra. En la parte 1 de esta serie, registró una aplicación y configuró los flujos de usuario en el inquilino externo. En este tutorial, creará un proyecto Node.js(Express) y organizará todas las carpetas y archivos que necesite. Habilite el inicio de sesión en la aplicación que prepara aquí. Las vistas de esta aplicación web Node.js(Express) usan handlebars.
En este tutorial, aprenderás lo siguiente;
- Crear un proyecto de Node.js
- Instalar dependencias
- Agregar vistas de aplicación y componentes de interfaz de usuario
Requisitos previos
- Tutorial: Preparación del inquilino externo para iniciar sesión de usuarios en una aplicación web de Node.js
- Aunque se puede usar cualquier entorno de desarrollo integrado (IDE) que admita aplicaciones React, este tutorial usa Visual Studio Code.
- Node.js.
- Visual Studio Code u otro editor de código.
Creación del proyecto Node.js
En la ubicación que prefiera de su equipo, cree una carpeta para hospedar su aplicación de nodo, como ciam-sign-in-node-express-web-app.
En su terminal, cambie el directorio a la carpeta de su aplicación web Node, como
cd ciam-sign-in-node-express-web-app
, luego ejecute el siguiente comando para crear un nuevo proyecto Node.js:npm init -y
El comando
init -y
crea un archivo package.json predeterminado para el proyecto de Node.js.Cree carpetas y archivos adicionales para conseguir la siguiente estructura de proyecto:
ciam-sign-in-node-express-web-app/ ├── server.js └── app.js └── authConfig.js └── package.json └── .env └── auth/ └── AuthProvider.js └── controller/ └── authController.js └── routes/ └── auth.js └── index.js └── users.js └── views/ └── layouts.hbs └── error.hbs └── id.hbs └── index.hbs └── public/stylesheets/ └── style.css
Instalar las dependencias de la aplicación
Para instalar la identidad requerida y los paquetes npm relacionados con Node.js, ejecute el siguiente comando en su terminal
npm install express dotenv hbs express-session axios cookie-parser http-errors morgan @azure/msal-node
Creación de los componentes de la interfaz de usuario de la aplicación
En el editor de código, abra el archivo views/index.hbs y agregue el siguiente código:
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View ID token claims</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
En esta vista, si el usuario está autenticado, mostramos su nombre de usuario y vínculos para visitar los puntos de conexión
/auth/signout
y/users/id
; de lo contrario, el usuario debe visitar el punto de conexión/auth/signin
para iniciar sesión. Más adelante en este artículo definimos las rutas rápidas para estos puntos de conexión.En el editor de código, abra el archivo views/id.hbs y luego agregue el siguiente código:
<h1>Azure AD for customers</h1> <h3>ID Token</h3> <table> <tbody> {{#each idTokenClaims}} <tr> <td>{{@key}}</td> <td>{{this}}</td> </tr> {{/each}} </tbody> </table> <a href="/">Go back</a>
Esta vista se usa para mostrar las notificaciones de token de identificador que Microsoft Entra External ID devuelve a esta aplicación después de que un usuario haya iniciado la sesión correctamente.
En el editor de código, abra el archivo views/error.hbs y luego agregue el siguiente código:
<h1>{{message}}</h1> <h2>{{error.status}}</h2> <pre>{{error.stack}}</pre>
Usamos esta vista para mostrar todos los errores que se produzcan cuando se ejecuta la aplicación.
En el editor de código, abra el archivo views/layout.hbs y luego agregue el siguiente código:
<!DOCTYPE html> <html> <head> <title>{{title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> {{{content}}} </body> </html>
El archivo
layout.hbs
está en el archivo de diseño. Contiene el código HTML que necesitamos en toda la vista de la aplicación.En el editor de código, abra public/stylesheets/style.css, archivo, y agregue el siguiente código:
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00B7FF; }