Я начал использовать AWS AppSync, и у меня возникла проблема с разрешениями.
Я использовал AppSync, чтобы создать таблицу DynamoDB для моих данных и настроить авторизацию для использования с пулами пользователей Cognito, которые я уже создал.
Я установил действие по умолчанию на ALLOW
, что, согласно документам AWS - https://docs.aws.amazon.com/appsync/latest/devguide/security.html#amazon-cognito-user-pools-авторизация - должна разрешить общий доступ к запускать любые запросы / мутации / подписки, определенные в моей схеме по умолчанию.
В приведенной выше документации также говорится, что ограничение доступа осуществляется путем добавления @aws_auth
к моим определениям типов. Кого я еще не добавил.
И вот чего я хочу: я хочу, чтобы мои запросы были общедоступными - не нужно добавлять директиву @aws_auth
- и чтобы мои изменения были ограничены группой Admins в моем пуле пользователей Cognito. Таким образом, при тестировании запроса я должен иметь возможность получать данные, которые мне возвращают, не входя в систему где-либо.
Однако при попытке выполнить какие-либо тестовые запросы в консоли AppSync я получаю следующее сообщение об ошибке:
{
"errors": [
{
"errorType": "UnauthorizedException",
"message": "Unable to parse JWT token."
}
]
}
Очевидно, это связано с тем, что вы не вошли в Cognito.
Раньше я тестировал эти запросы без использования авторизации Cognito, и все они работали нормально. А поскольку для моего авторизатора Cognito для моего действия по умолчанию установлено значение ALLOW
, мои запросы теперь должны выполняться точно так же, поскольку я их не изменял.
Глядя на код моих запросов, типов и преобразователей, я не вижу никакой разницы в том, как они написаны. Роль IAM, разрешающая доступ к моей таблице DynamoDB, также остается прежней и не имеет никаких ограничений.
Что здесь происходит? Есть ли ошибка с AppSync, или мне что-то здесь не хватает?
Пожалуйста, дай мне знать. Спасибо