Базовая аутентификация в Node.js с использованием HTTP-заголовка

Опубликовано: 26 Июля, 2021

Аутентификация клиента - это первый шаг перед запуском любого Приложения. Базовую аутентификацию в приложении 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 () вызывает следующее промежуточное программное обеспечение, упомянутое ниже промежуточного программного обеспечения проверки подлинности, в противном случае форма проверки подлинности появляется снова и снова. .

Подробности заголовка запроса: