Я установил поток аутентификации с Facebook Login и AWS Cognito на клиентском сайте. Работает отлично. Но теперь мне нужна ссылка пользователя с идентификатором facebook в таблице dynambodb. Конечно, я мог бы просто вызвать функцию лямбда AWS, открытую через шлюз AWS API, но как я могу проверить, что вызов API действительно имеет действительный идентификатор facebook и что этот идентификатор facebook соответствует идентификатору Cognito AWS. Может быть, я что-то упустил здесь, надеюсь, вы, ребята, можете указать мне в правильном направлении;) спасибо!AWS Cognito, Lambda, учетные данные пользователя в DynamoDB
ответ
Если вы можете ввести свой ddb-таблицу с помощью идентификатора cognito вместо идентификатора facebook, вы можете вызвать api-шлюз с учетными данными cognito. Если вы используете учетные данные при вызове лямбда, вы можете получить доступ к идентификатору cognito через токен $context.identity.cognitoIdentityId
. Это гарантирует, что вызов был сделан владельцем этого идентификатора. Вы также можете проверить, что $context.identity.cognitoAuthenticationProvider
- graph.facebook.com
, чтобы обеспечить их авторизацию через Facebook. К сожалению, идентификатор facebook не передается в учетных данных, поэтому, если вам это нужно, вам понадобится таблица поиска, сопоставляющая идентификатор cognito с идентификатором facebook. Для получения дополнительной информации о доступных токенах см. here.
Я бы предложил сделать следующее (я новичок в АМС, а также, дайте мне знать, если у вас есть какие-либо предложения):
- Создание API шлюза
/fblogin
конечной точки, где разместим Access Facebook Токен (вы должны пройти аутентификацию с Facebook на стороне клиента, чтобы получить этот токен). Эта конечная точка связана с функцией лямбда:fb_login
. - В функции
fb_login
вы выполните аутентификацию с помощью Amazon Cognito, чтобы получить ее учетные данные. Вы должны создать пул пользователей Federated Identity в Cognito и назначить соответствующие роли для этого пула пользователей. Это помогает, если вы хотите ограничить свой API только теми, кто прошел аутентификацию и авторизацию. Итак, результат от Cognito будет иметьIdentityId
иCredentials
. Вы можете вернуть их в результате вашего запроса до/fblogin
. - Используя приведенный выше результат, вы можете подписать запросы, которые вы отправляете в API на API Gateway (Or you can use AWS custom generated SDK for your API to handle the signing). На конечных точках шлюза API включите CORS и аутентификацию как
AWS_IAM
. Таким образом, API Gateway проверяет пользователя автоматически, проверяя подпись в запросе. Вы можете получить идентификатор пользователя от$context.identity.cognitoIdentityId
, как предложили другие. Таким образом, вы можете быть уверены, что пользователь авторизован и аутентифицирован.
Примечание: Убедитесь, что вы реализуете /fblogin
конечную точку HTTPS, то маркер FB Access будет безопасным. Если нет, он будет отображаться как обычный текст через HTTP.
Также используйте таблицу DB Dynamo как журнал для CognitoID - FacebookID
. Вы можете включить это в функцию шага 2 лямбда ifself или что-нибудь, что вы считаете нужным.
- 1. AWS Lambda Cognito access
- 2. AWS Cognito adminCreateUser от Lambda
- 3. AWS .. DynamoDB или Lambda?
- 4. AWS Lambda сканирования dynamoDB
- 5. Как (правильно) использовать внешние учетные данные в функции AWS Lambda?
- 6. Есть ли способ получить имя пользователя Cognito в AWS Lambda?
- 7. Cognito DynamoDB AWS SDK в мобильном приложении
- 8. AWS Lambda сканирование таблицы dynamoDB
- 9. AWS Lambda DynamoDB Ошибка запроса
- 10. Создание логина для пользователя/разработчика для AWS iOS с использованием iOS SDK Cognito Lambda и DynamoDB
- 11. AWS Cognito, связывающий учетные записи пользователей
- 12. AWS Cognito Сгенерированные учетные данные не принимаются шлюзом API
- 13. AWS Lambda/Cognito Аутентификация - Предполагая, что Auth роль
- 14. Создание пользователя с использованием AWS cognito identity
- 15. Aws Lambda/Api-Gateway/Cognito working together
- 16. Использование AWS Cognito от Lambda для .NET.
- 17. AWS Cognito Login Flow Check
- 18. AWS Cognito Данные для входа
- 19. AWS, подтверждающий учетные данные
- 20. Высококачественный контроль доступа для AWS DynamoDB с использованием AWS Cognito
- 21. AWS DynamoDB на Lambda не возвращающие вставленные данные
- 22. AWS Cognito + мое собственное решение для идентификации с использованием DynamoDB?
- 23. Event Trigger Объект AWS Cognito пользователя Бассейны
- 24. Использование AWS Cognito и AWS Lambda для аутентификации пользователей
- 25. AWS DynamoDB запомнить товар для пользователя
- 26. Ошибка AWS Lambda при запуске пула пользователей Cognito
- 27. Как получить учетные данные на AWS? Должен ли я использовать AWS Cognito SDK или AWS SDK?
- 28. Записывает dynamodb из AWS lambda functon
- 29. DynamoDB JSON форматирование на AWS Lambda
- 30. UpdateItem в AWS DynamoDB с использованием AWS Lambda (node)
Просто, чтобы быть уверенным, что я понял: безопасный способ получить и сохранить идентификатор facebook в dynamodb при использовании AWS Cognito? – user1990524
Существуют способы, но вам необходимо поддерживать связь между идентификатором cognito и идентификатором facebook самостоятельно и безопасно устанавливать эту ссылку. Если у вас только есть пользователи facebook, вы можете взглянуть на федерацию веб-идентификации: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html таким образом, ваш ключ в ddb может быть facebook ID. – behrooziAWS
Спасибо, AWS может быть немного подавляющим в начале. Будьте уверены, это фантастическая инфраструктура! – user1990524