#javascript #node.js #express #jwt #authorization
Вопрос:
Моя служба должна отвечать на запросы о получении от пользовательского интерфейса. Я получаю данные от третьей стороны, где требуется аутентификация. Так что теперь это моя логика:
Интерфейс делает запрос get, В моем методе get я сначала делаю пост-вызов, чтобы получить токен аутентификации, затем, используя этот токен, я делаю запрос get той же третьей стороне и отправляю полученные данные в пользовательский интерфейс. Мне не нравится делать post-вызов, чтобы получить токен для каждого запроса на получение из пользовательского интерфейса. Как я могу это упростить ?
Логические:
app.get('/index', (req, res) => {
// 1) I make async post call to get token to the 3rd party
// 2) Using this token,I make get call to the same 3rd party
// 3) send the response
})
Комментарии:
1. Вы можете написать node.js промежуточное программное обеспечение, которое будет предоставлять вам данные аутентификации каждый раз, если ваша третья сторона позволяет вам хранить токен, вы можете кэшировать его локально на своем веб-сервере и повторно использовать.
Ответ №1:
Цитирование из документации. Если вы используете экспресс, это может вам помочь:
var express = require('express')
var app = express()
var getToken = function (req, res, next) {
// code for getting token
req.authToken = 'HASHED TOKEN';
next()
}
app.use(getToken)
app.get('/index', function (req, res) {
let authToken = req.authToken;
// 2) Use this token for getting the data
// 3) send the response
res.send(response)
})
app.listen(3000)