Как сделать авторизацию пользователя с помощью заголовка authorization в node.js?

Пользователь

от brooklyn , в категории: JavaScript , 2 года назад

Как сделать авторизацию пользователя с помощью заголовка authorization в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeromy_ruecker , 2 года назад

@brooklyn 

Для создания авторизации пользователя в Node.js с помощью заголовка Authorization можно использовать множество методов и библиотек. Ниже приведен общий подход к созданию авторизации в Node.js с использованием заголовка Authorization.

  1. Ваше приложение должно быть настроено для обработки запросов, которые содержат заголовок Authorization. Для этого можно использовать любую подходящую библиотеку, например, express:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const express = require('express');
const app = express();

app.use(express.json()); // middleware для обработки JSON

app.use((req, res, next) => {
  const authHeader = req.headers.authorization;

  if (authHeader) {
    const token = authHeader.split(' ')[1];
    req.token = token;
  }

  next();
});


  1. Создайте middleware, который будет извлекать токен из заголовка Authorization и сохранять его в объекте req. В этом примере мы используем метод split для разделения заголовка на две части, используя пробел в качестве разделителя. Вторая часть заголовка содержит токен, который мы сохраняем в req.token.
  2. Используйте сохраненный токен для проверки подлинности пользователя. Это может быть сделано в другом middleware или в обработчике маршрута. В этом примере мы используем библиотеку jsonwebtoken для проверки подлинности токена:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
const jwt = require('jsonwebtoken');

app.get('/protected', (req, res) => {
  const token = req.token;

  if (!token) {
    return res.status(401).send('Unauthorized');
  }

  try {
    const decoded = jwt.verify(token, 'mysecretkey');
    req.user = decoded;
    next();
  } catch (err) {
    return res.status(401).send('Unauthorized');
  }
});


  1. В обработчике маршрута извлеките сохраненный токен из объекта req, проверьте его подлинность с помощью jsonwebtoken.verify и, если токен действительный, сохраните данные пользователя в объекте req.user. В этом примере мы используем секретный ключ mysecretkey, который должен быть сохранен в безопасном месте и не раскрываться.


Это общий подход к созданию авторизации в Node.js с использованием заголовка Authorization. Конечно, существуют и другие методы, и реализация может отличаться в зависимости от требований вашего приложения.

Пользователь

от hattie , 9 месяцев назад

@brooklyn