Базовая аутентификация в Node.js с использованием HTTP-заголовка
Аутентификация клиента - это первый шаг перед запуском любого Приложения. Базовую аутентификацию в приложении Node.js можно выполнить с помощью инфраструктуры express.js. Фреймворк Express.js в основном используется в приложении Node.js из-за его помощи в обработке и маршрутизации различных типов запросов и ответов, сделанных клиентом с использованием другого промежуточного программного обеспечения.
Заголовок HTTP WWW-Authenticate является заголовком типа ответа и служит поддержкой различных механизмов аутентификации, которые также важны для управления доступом к страницам и другим ресурсам.
Объяснение аутентификации:
Установка модуля: Установите экспресс-модуль с помощью следующей команды.
npm установить экспресс
Структура проекта:
Имя файла- 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 " ); }) |
Запустите index.js, используя следующую команду:
узел index.js
- Откройте любой браузер с адресом http: // localhost: 3000 в приватном окне (во избежание сохранения пароля и имени пользователя). Рядом с адресной строкой появится всплывающее сообщение. Введите имя пользователя и пароль, указанные в коде.
- Если введенные имя пользователя и пароль совпадают с упоминанием, то в браузере отобразится местоположение index.html.
Объяснение: Первое промежуточное ПО используется для проверки аутентификации клиента, когда сервер запускается и клиент вводит адрес localhost. Изначально req.headers.authorization не определено, а функция обратного вызова next () возвращает код статуса 401 несанкционированного доступа к браузеру. Клиент заполняет учетные данные и учетные данные, зашифрованные в формате base64. После этого он расшифровывает данные формата base64, содержащие имя пользователя и пароль, а затем, после проверки правильности имени пользователя и пароля, метод next () вызывает следующее промежуточное программное обеспечение, упомянутое ниже промежуточного программного обеспечения проверки подлинности, в противном случае форма проверки подлинности появляется снова и снова. .
Подробности заголовка запроса: