Пишу приложение на Node.js. Хочу сделать так, чтобы добавлять данные в некоторые коллекции могли только авторизованные в системе пользователи (авторизация с помощь passport-local strategy).
Например есть коллекция вопросов пользователей "questions". Вопрос может добавить только залогиненный в системе пользователь.
Сейчас я делаю следующим образом: Перед каждым запросом пишу if(!ctx.isAuthenticated()) return;
Выглядит это так:
//страница обрабатывающая запрос
const Questions = require('../../models/questions.js');
exports.post = async (ctx, next) => {
if(!ctx.isAuthenticated()) return;
const insertedQuestion = new Questions({
text:ctx.request.body.text
})
ctx.body = await insertedQuestion.save()
}
//questionsSchema
const mongoose = require('../libs/mongoose');
const questionsSchema = new mongoose.Schema({
text: String,
})
module.exports = mongoose.model('Questions', questionsSchema);
Меня преследует и не покидает чувство, что такую задачу надо решать как-то иначе, например проксировать операцию save() и проверять авторизован ли пользователь там. Как лучше всего решить подобного рода задачу?