La autenticación del cliente es el primer paso antes de iniciar cualquier Aplicación. La autenticación básica en la aplicación Node.js se puede realizar con el marco de ayuda express.js . El marco Express.js se usa principalmente en la aplicación Node.js debido a su ayuda en el manejo y enrutamiento de diferentes tipos de requests y respuestas realizadas por el cliente utilizando diferentes Middleware.
El encabezado HTTP WWW-Authenticate es un encabezado de tipo respuesta y sirve como soporte para varios mecanismos de autenticación que también son importantes para controlar el acceso a las páginas y otros recursos.
Explicación de la autenticación:
Instalación del módulo: Instale el módulo express usando el siguiente comando.
npm install express
Estructura del proyecto:
Nombre de archivo- index.js
Javascript
// Requiring module const express = require("express"); const fs = require("fs"); var path = require('path'); const app = express(); function authentication(req, res, next) { var authheader = req.headers.authorization; console.log(req.headers); if (!authheader) { var err = new Error('You are not authenticated!'); res.setHeader('WWW-Authenticate', 'Basic'); err.status = 401; return next(err) } var auth = new Buffer.from(authheader.split(' ')[1], 'base64').toString().split(':'); var user = auth[0]; var pass = auth[1]; if (user == 'admin' && pass == 'password') { // If Authorized user next(); } else { var err = new Error('You are not authenticated!'); res.setHeader('WWW-Authenticate', 'Basic'); err.status = 401; return next(err); } } // First step is the authentication of the client app.use(authentication) app.use(express.static(path.join(__dirname, 'public'))); // Server setup app.listen((3000), () => { console.log("Server is Running "); })
Ejecute index.js usando el siguiente comando:
node index.js
- Abra cualquier navegador con la ubicación http://localhost:3000 en una ventana privada (para evitar una contraseña y un nombre de usuario guardados). Se producirá un pop cerca de la barra de direcciones. Complete el nombre de usuario y la contraseña que se mencionan en el código.
- Si el nombre de usuario y la contraseña ingresados coinciden con la mención, la ubicación index.html aparecerá en el navegador.
Explicación: El primer middleware se usa para verificar la autenticación del cliente cuando se inicia el servidor y el cliente ingresa la dirección del host local. Inicialmente , req.headers.authorization no está definido y la función de devolución de llamada next() devuelve el código de estado 401 de acceso no autorizado al navegador. El cliente llena las credenciales y las credenciales cifradas en formato base64. Después de eso, descifra los datos de formato base64 que contienen el nombre de usuario y la contraseña, luego, después de verificar que el nombre de usuario y la contraseña son correctos, el método next() llama al siguiente middleware que se menciona debajo del middleware de autenticación, de lo contrario, el formulario de autenticación aparece una y otra vez. .
Detalles del encabezado de la solicitud:
Publicación traducida automáticamente
Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA