Гнездо js: проверка AuthGuard на запрос? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть гнездо js graphql, и я хотел бы выполнить аутентификацию токена один раз за http-запрос .

Проблема:

Для одного http запрос мой глобальный определенный защитник app.useGlobalGuards(new GqlAuthGuard()) проверяет пользователя 7 раз , если у меня следующий запрос graphql:

  {
    article(id:1)
    {
      id
      name   
    }
    categories {
      id
      name
    }
    topics {
      id
      name              
    }
    lawmakers {
      id
      name
    }
    articleTypes {
      id
      name
    }
    articleStatuses {
      id
      name
    }
    countries {
      id
      name
    }
  }

Похоже, что AuthGuard вызывается для каждого модуля, который зависит от запроса.

Как мне избавиться от этой множественной проверки?

1 Ответ

0 голосов
/ 11 февраля 2020

Возможно, в конечном итоге вы добавите какое-либо свойство validated или authenticated к контексту запроса, чтобы на каждом новом контроле, через который проходит запрос, его можно было закорочить этим полем. Проблема в том, что с вашим запросом вы , по существу, делаете 7 http-вызовов в одном, и Nest будет защищать каждый запрашиваемый запрос и мутацию, потому что именно так привязывается глобальная защита. Единственный реальный способ обойти это просто добавить какое-то короткое замыкание, которое не дает сложной логике c.

...