То, что я пытаюсь сделать, это что-то функционально подобное (конечно, приведенный ниже код - чепуха):
@UseGuards( AuthGuard || AdminAuthGuard )
Я хочу, чтобы мои охранники были ложными, только если оба вернули ложь. По сути, я бы хотел, чтобы мои средства проверки подлинности были похожи на операторы OR, потому что конечная точка может быть активирована несколькими независимыми источниками, и каждый из них имеет свою собственную систему аутентификации.
Конечно, я мог бы объединить эти два автора в одной и той же функции. Проблема заключается в том, что код может стать беспорядочным, поскольку существуют случаи, когда мне нужно использовать каждый из них по отдельности, и я не хочу дублирования друг с другом.
Кто-нибудь знает, как реализовать подобное поведение?
PS: Также в качестве дополнительной сложности я использую RoleGuards с одной из двух систем входа в систему. Таким образом, RoleGuards будет применяться, например, если AdminAuth имеет значение true, но не применяется, как правило, Auth имеет значение true.
РЕШЕНИЕ: Вот как я решил эту проблему (я до сих пор не знаю, есть ли простой способ сделать это. Если вы, я хочу знать;)).
В моей оригинальной защите я экспортировал функцию validateRequest. Я создал auth guard, который называется adminOrNormalAuthGuard. Там я импортирую функции и реализую необходимую логику.
Что касается roleGuards, все, что я делаю, это импортирую эти функции проверки. Если логин в норме => вернуть true. Если специальный логин => результат зависит от логики охраны.