Всем привет.
Насчет авторизации в graphql: мне не нравится идея определения прав в резолверах, как и не нравится использование для этого директив.
Не нравится мне это из-за того, что у меня в проекте уже сейчас 4 роли пользователей, а планируется еще больше. Я не хочу , чтобы незарегистрированный пользователь даже видел в своей схеме запросы/мутации для администратора.
Это усложняет использование песочницы, это приводит к дополнительным затратам при разработке в dev-режиме (схема пользователя весит много, а он public), да и дает внешним силам видеть мою схему.
Моя идея такая - поднимать один сервер для всех, но внутри node.js приложения поднимать несколько apollo-server'ов на закрытых портах.
Каждый apollo-server нужен для определенного типа пользователя, имеет собственную схему.
Public сервер выполняет роль определения типа пользователя и проксирования запроса на нужный apollo-сервер.
Только вот у меня не хватает знаний оценить такое решение с точки зрения используемых ресурсов. Может кто поможет?