«Нет текущего пользователя»: Разве невозможно сделать неаутентичный вызов AWS AppSyn c через Amplify с типом аутентификации AMAZON_COGNITO_USER_POOLS? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть схема AWS AppSyn c с режимом авторизации по умолчанию Пул пользователей Amazon Cognito . Я вызываю эту конечную точку AppSyn c из веб-приложения, используя AWS Amplify GraphQL Client , и, соответственно, его конфигурация указывает пользовательские пулы Cognito в качестве типа аутентификации:

aws_appsync_authenticationType: 'AMAZON_COGNITO_USER_POOLS'

Работает, как ожидалось, когда пользователь аутентифицирован ; однако (хотя в пуле идентификаторов Cognito уже установлены надлежащие роли Auth и Unath), когда веб-сайт запускает некоторую команду Amplify fetch, например, для неаутентифицированного (гостя) пользователя:

const item = await API.graphql(graphqlOperation(getItem, { id: 'my-id' }))

Заканчивается выдачей ошибки:

"No current user"

Ну, я ожидал, что это сработает, если я разрешаю неаутентифицированным пользователям, но это просто не удается. В поисках выхода я нашел несколько обсуждений, например:

И все вышеперечисленное предлагает пересмотреть конфигурации Amplify, чтобы тип аутентификации AppSyn c был преобразован из * С 1034 * на AWS_IAM или API_KEY. Однако по какой-то конкретной причине 1 :

  • Я хочу придерживаться AMAZON_COGNITO_USER_POOLS типа аутентификации,
  • И все же иметь возможность для получения некоторых ресурсов AppSyn c в качестве гостевого пользователя, если они не ограничены @aws_auth декораторами и т. д.

Возможно ли это каким-либо образом?

1 У меня есть более детальные элементы управления в зависимости от группы пользователя (admin, normal et c.) С декораторами, такими как @aws_auth(cognito_groups: ["default-user-group"]) в схеме AppSyn c. Итак, мне нужны пулы пользователей Cognito для этого использования.

...