Комплексное руководство по созданию промежуточного программного обеспечения для проверки JWT в Express

JWT (веб-токен JSON) — это популярный метод безопасной передачи информации между сторонами в виде объекта JSON. В архитектуре сервер-клиент крайне важно проверить подлинность JWT для обеспечения безопасной связи. В этой статье мы рассмотрим несколько методов создания промежуточного программного обеспечения для проверки JWT в отдельном файле с использованием Express.js, популярной платформы Node.js.

Предварительные требования:
Прежде чем продолжить, убедитесь, что у вас установлено следующее:

  • Node.js и npm (менеджер пакетов Node)
  • Express.js

Метод 1. Использование промежуточного программного обеспечения express-jwt

  1. Установить пакет express-jwt:
    npm install express-jwt
  2. Создайте отдельный файл, например, jwtMiddleware.js, и добавьте следующий код:
    const jwt = require('express-jwt');
    const secret = 'your-secret-key';
    module.exports = jwt({
    secret: secret,
    algorithms: ['HS256']
    });
  3. В главном файле сервера потребуется файл jwtMiddleware.js:
    const jwtMiddleware = require('./jwtMiddleware');
  4. Используйте промежуточное программное обеспечение на нужных вам маршрутах:
    app.get('/protected-route', jwtMiddleware, (req, res) => {
    // Handle protected route logic here
    });

Метод 2: пользовательская функция промежуточного программного обеспечения

  1. Создайте отдельный файл, например, jwtMiddleware.js, и добавьте следующий код:
    const jwt = require('jsonwebtoken');
    const secret = 'your-secret-key';
    module.exports = (req, res, next) => {
    const token = req.headers.authorization;
    if (!token) {
    return res.status(401).json({ message: 'No token provided' });
    }
    jwt.verify(token, secret, (err, decoded) => {
    if (err) {
      return res.status(401).json({ message: 'Invalid token' });
    }
    req.user = decoded;
    next();
    });
    };
  2. В главном файле сервера потребуется файл jwtMiddleware.js:
    const jwtMiddleware = require('./jwtMiddleware');
  3. Используйте промежуточное программное обеспечение на желаемых маршрутах:
    app.get('/protected-route', jwtMiddleware, (req, res) => {
    // Handle protected route logic here
    });

Метод 3. Использование промежуточного программного обеспечения express-jwt-verifier

  1. Установите пакет express-jwt-verifier:
    npm install express-jwt-verifier
  2. Создайте отдельный файл, например, jwtMiddleware.js, и добавьте следующий код:
    const verifier = require('express-jwt-verifier');
    const secret = 'your-secret-key';
    module.exports = verifier({ secret: secret });
  3. В главном файле сервера потребуется файл jwtMiddleware.js:
    const jwtMiddleware = require('./jwtMiddleware');
  4. Используйте промежуточное программное обеспечение на нужных вам маршрутах:
    app.get('/protected-route', jwtMiddleware, (req, res) => {
    // Handle protected route logic here
    });

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

Не забывайте обрабатывать случаи ошибок, например просроченные или недействительные токены, чтобы обеспечить надежный механизм аутентификации для вашего сервера.