Авторизация в Node.js, все, что вам нужно знать


Что такое авторизация? 🤔🤔🤔🤔

Авторизация — это механизм безопасности, используемый для определения привилегий пользователя/клиента или уровней доступа к системным ресурсам, включая компьютерные программы, файлы, службы, данные и функции приложения. Авторизации обычно предшествует аутентификация для проверки личности пользователя. Или
Авторизация — это просто процесс предоставления или отказа в доступе к ресурсам. Что происходит после аутентификации

Итак, что такое аутентификация

Проще говоря, это процесс проверки личности пользователя.

Затем авторизация дает вам доступ к страницам либо как пользователю, либо как администратору.

Как мне сделать это на Node.js?😣😣😣

Не стоит беспокоиться, это довольно просто.
Для авторизации популярно использовать пакет JSONWEBTOKEN (JWT)

JSONWEBTOKEN(JWT)

JSON Web Token — это предлагаемый Интернет-стандарт для создания данных с необязательной подписью и/или необязательным шифрованием, полезная нагрузка которых содержит JSON, утверждающий некоторое количество утверждений. Токены подписываются либо с использованием частного секрета, либо открытого/закрытого ключа.

Это означает, что JWT создает токен для вас как пользователя или администратора, когда вы проходите аутентификацию. Теперь ключ SECRET будет сравниваться с вашим сгенерированным токеном каждый раз, когда вы пытаетесь получить доступ к маршруту. Вам не будет предоставлен доступ к этой странице, если ключ не совпадает или токен недействителен.


Я использовал токен BEARER для своего проекта, но у нас также есть OAuth2.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzMGE3MjQxNGE3MzFjZWY2MTE3NGY4MyIsImlhdCI6MTY2MTYyOTA5NiwiZXhwIjoxNjYxNzE1NDk2fQ. QYFUATkHwoXCO7x8-588KjLGnfy6OgG740OScGxCz6o => Так выглядит токен на предъявителя.

exports.isAuth = async (req, res, next) => {
  try {
    const token = req.headers.authorization.split(' ')[1];

    if (!token) {
      return res.status(401).json({ message: 'Token Is missing' });
    }

    const decoded = await jwt.verify(token, process.env.SECRET_KEY);
    if (!decoded) {
      throw new Error();
    }
    req.user = decoded;
    next();
  } catch (e) {
    return res.status(401).json({ message: 'Token expired' });
  }
};
Вход в полноэкранный режим Выход из полноэкранного режима

Вот пример того, как будет выглядеть ваш файл авторизации

Теперь вы импортируете блок кодов в свои маршруты

const express = require("express");
const { addHouse } = require("../controllers/house.controller");
const { isAuth } = require("../middleware/isAuth");

const router = express.Router();

router.post("/create", isAuth, addHouse);
module.exports = router;
Войти в полноэкранный режим Выйти из полноэкранного режима

`

Вот и все, вы только что защитили свои маршруты, добавив AUTHORIZATION.

Оцените статью
devanswers.ru
Добавить комментарий