Мы работаем над простой автоматизацией этого в новой версии Amplify CLI.
Тем временем, выполните следующие шаги:
Используя следующие шаги, вы можете разрешить обаАутентифицированный и неаутентифицированный доступ к вашему API-интерфейсу AWS AppSync:
- Создание проекта Amplify
amplify init
- Добавление аутентификации с настраиваемой конфигурацией безопасности:
amplify add auth
Хотите использовать настройки аутентификации и безопасности по умолчанию? НЕТ
Выберите службы аутентификации / авторизации, которые вы хотите использовать: (Используйте клавиши со стрелками) Регистрация пользователя, вход в систему, связанные с элементами управления AWS IAM (Включено для-пользовательские функции хранения изображений и другого содержимого, аналитики и т. д.)
Пожалуйста, укажите понятное имя для вашего ресурса, который будет использоваться для обозначения этой категории в проекте: YOURAPINAME
Пожалуйста, введите имя для вашего удостоверения личности. YOURIDPOOLNAME
Разрешить вход без аутентификации?(Предоставляет ограниченные разрешения, которыми вы можете управлять через AWS IAM) Да
Выберите значения по умолчанию для остальных вопросов
Добавьте API
amplify add api
Выберите Amazon Cognito User Pool в качестве типа авторизации.
Создание API
amplify push
В настройках панели API AppSync измените тип аутентификации на Управление идентификацией и доступом AWS (IAM)
В aws.exports.js
наклиентское приложение, измените aws_appsync_authenticationType
на AWS_IAM
На панели инструментов Cognito нажмите «Управление пулами удостоверений» и щелкните свой пул удостоверений.
Нажмите «Изменить пул удостоверений», чтобы увидеть свою «роль, не прошедшую проверку подлинности» и «Роль, прошедшую проверку подлинности»
Откройте консоль IAM и найдите «роль, не прошедшую проверку подлинности», начиная с шага 8
Нажмите «Добавить встроенную политику»
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"appsync:GraphQL"
],
"Resource": [
"arn:aws:appsync:<REGION>:<ACCOUNTID>:apis/<APIID>/types/Mutation/fields/listTodos"
]
}
]
}
Откройте консоль IAM и найдите «роль с проверкой подлинности», начиная с шага 8
Нажмите «Добавить встроенную политику»
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"appsync:GraphQL"
],
"Resource": [
"arn:aws:appsync:<REGION>:<ACCOUNTID>:apis/<APIID>/types/Mutation/fields/listTodos",
"arn:aws:appsync:<REGION>:<ACCOUNTID>:apis/<APIID>/types/Mutation/fields/createTodo"
]
}
]
}
В index.js добавьте этот код:
import { Auth } from 'aws-amplify'
Auth.currentCredentials()
.then(d => console.log('data: ', d))
.catch(e => console.log('error: ', e))
Теперь вы сможете выполнять запросы при выходе из системы, а также запрашивать и создавать мутации при входе в систему. Если вы хотите получить доступ к уникальному идентификатору пользователя, вошедшего в систему, для авторизации и детальной настройкиконтроль доступа, вы можете получить доступ к
$context.identity.cognitoIdentityId
в распознавателе.