Я пытаюсь проверить конфигурацию для защиты подписок graphql в моем приложении.
Это моя конфигурация в конструкторе ApolloServer
:
const app = express();
const jwt_authentication = jwt({
secret: JWT_SECRET,
credentialsRequired: false
})
const server = new ApolloServer({
typeDefs,
resolvers,
introspection: true,
playground: true,
formatError: error => {
console.log(error);
},
context: async ({req, connection }) => {
if (connection) {
return connection.context;
} else {
return some_method_to_return_user_info;
}
},
subscriptions: {
onConnect: async (connectionParams, webSocket, context) => {
const user = await jsonwebtoken.verify(connectionParams.jwt, JWT_SECRET);
const userInfo= some_method_to_return_user_info;
if (userInfo) {
return { user: userInfo };
}
throw new Error("Unauthorized subscription");
}
}
});
app.use(GRAPHQL_PATH, jwt_authentication);
//...
Когда я запускаю подписку в GraphQL Playground, я получаю сообщение об ошибке:
jwt must be provided
Я тестировалс заголовком "Authorization": "Bearer MY_TOKEN"
, а затем с "jwt": "MY_TOKEN"
, но я считаю, что это не так просто.
Есть ли возможность проверить мои подписки без реализации клиентского кода?