Postgraphile + Express + JWT выбрасывает «токен авторизации не найден», хотя Graphiql работает - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь использовать промежуточное программное обеспечение jwt express, а также промежуточное программное обеспечение postgraphile, и хочу добавить исключение для наличия токена авторизации в интерфейсе graphiql.Я знаю, что postgraphile запускает graphql на /graphql и graphiql на /graphiql, если не настроено иное.Итак, в моем jwt middleware init я делаю это:

app.use(jwt({ secret: process.env.JWT_SECRET}).unless({path: ['/', /\/graphiql/i, /\/graphql/i, /auth/i]}));

, что делает его таким, что для маршрутов /graphiql, /graphql и /auth не требуется токен авторизации.Похоже, что это работает нормально, потому что я могу просто получить доступ к интерфейсу graphiql, а запросы Graphql, которые я создаю, работают нормально.Тем не менее, в моем экспресс-терминале все еще есть что-то, к чему он пытается подключиться, которое выдает No authorization token found, когда я загружаю http://localhost:3000/graphiql

Любые мысли о том, что еще он может попытаться ударить, что я будутакже необходимо добавить метод unless() в промежуточном программном обеспечении JWT?

1 Ответ

0 голосов
/ 28 сентября 2018

PostGraphile в настоящее время загружает ресурсы GraphiQL (JS, CSS) из /_postgraphile/*, так что вы, вероятно, хотите внести эти активы в белый список.

Другой подход заключается в монтировании postgraphile перед вами.добавьте промежуточное программное обеспечение jwt - таким образом оно не будет затронуто им, и вам не нужно будет поддерживать список .unless.

app.use(postgraphile(...));
app.use(jwt(...));
app.use(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...