JWT (веб-токен JSON) — это популярный метод безопасной передачи информации между сторонами в виде объекта JSON. В архитектуре сервер-клиент крайне важно проверить подлинность JWT для обеспечения безопасной связи. В этой статье мы рассмотрим несколько методов создания промежуточного программного обеспечения для проверки JWT в отдельном файле с использованием Express.js, популярной платформы Node.js.
Предварительные требования:
Прежде чем продолжить, убедитесь, что у вас установлено следующее:
- Node.js и npm (менеджер пакетов Node)
- Express.js
Метод 1. Использование промежуточного программного обеспечения express-jwt
- Установить пакет express-jwt:
npm install express-jwt - Создайте отдельный файл, например,
jwtMiddleware.js, и добавьте следующий код:const jwt = require('express-jwt'); const secret = 'your-secret-key'; module.exports = jwt({ secret: secret, algorithms: ['HS256'] }); - В главном файле сервера потребуется файл
jwtMiddleware.js:const jwtMiddleware = require('./jwtMiddleware'); - Используйте промежуточное программное обеспечение на нужных вам маршрутах:
app.get('/protected-route', jwtMiddleware, (req, res) => { // Handle protected route logic here });
Метод 2: пользовательская функция промежуточного программного обеспечения
- Создайте отдельный файл, например,
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(); }); }; - В главном файле сервера потребуется файл
jwtMiddleware.js:const jwtMiddleware = require('./jwtMiddleware'); - Используйте промежуточное программное обеспечение на желаемых маршрутах:
app.get('/protected-route', jwtMiddleware, (req, res) => { // Handle protected route logic here });
Метод 3. Использование промежуточного программного обеспечения express-jwt-verifier
- Установите пакет express-jwt-verifier:
npm install express-jwt-verifier - Создайте отдельный файл, например,
jwtMiddleware.js, и добавьте следующий код:const verifier = require('express-jwt-verifier'); const secret = 'your-secret-key'; module.exports = verifier({ secret: secret }); - В главном файле сервера потребуется файл
jwtMiddleware.js:const jwtMiddleware = require('./jwtMiddleware'); - Используйте промежуточное программное обеспечение на нужных вам маршрутах:
app.get('/protected-route', jwtMiddleware, (req, res) => { // Handle protected route logic here });
В этой статье мы рассмотрели три различных метода создания промежуточного программного обеспечения для проверки JWT в отдельном файле с использованием Express.js. Вы можете выбрать метод, который соответствует требованиям вашего проекта, и реализовать его соответствующим образом. Проверив JWT, вы можете повысить безопасность своего сервера и гарантировать, что только авторизованные пользователи смогут получить доступ к защищенным маршрутам.
Не забывайте обрабатывать случаи ошибок, например просроченные или недействительные токены, чтобы обеспечить надежный механизм аутентификации для вашего сервера.