У меня есть веб-приложение и RESTful API для связи с БД. Интерфейс веб-приложения публикует/получает/помещает в бэкэнд с помощью Angular HTTP, который, в свою очередь, обрабатывает аутентификацию, отправляет/получает/помещает в api и возвращает результат. Бэкэнд аутентифицируется как администратор API через JWT, но аутентифицирует пользователей с сеансами на основе файлов cookie. Таким образом, API не имеет статуса, но веб-сервер использует состояния.RESTful API в Node.js - возможна ли фильтрация с авторизацией
Я искал варианты наличия механизма авторизации для фильтрации результатов запроса на основе пользователей. Например, у меня есть конечная точка вопросов, где я возвращаю список вопросов, только созданных компанией зарегистрированного пользователя.
1- я делал на веб-сервере (в основном фильтрации):
router.get('/questions', passportConf.isAuthenticated, function(req, res) {
restler.get(process.env.API_URL + '/questions/?organisation=' + req.user.organisation._id).on('complete', function(questions) {
res.json({
data: questions
});
});
});
2- Однако другой вариант поставленные вопросы конечную точку вложен в организации конечной точки пользователя, такие как:
/user/organisation/questions
3- Или в принципе я могу поместить пользователя в тело запроса, сделанного в API, который будет фильтроваться на основе организации пользователя, который находится в теле запроса.
4 Наконец, я могу пропустить сеанс аутентификации на основе файлов cookie на веб-сервере, сделать мой запрос непосредственно в API из интерфейса и аутентифицировать пользователей с помощью JWT (что то же самое, как фильтровать вопрос в первой точке).
Я довольно новыми для Node.js и мне было интересно, если есть модуль или обычная практика для обработки особенно фильтрации в 1 или 4.
Я предполагаю, что restler является маршрутизатором? Или имя приложения nodejs? – sarker306
@ sarker306 Это клиентская библиотека HTTP. https://github.com/danwrong/restler Этот блок находится в самом маршрутизаторе, добавив информацию о организации в запрос, сделанный в API. –