Как я могу зарегистрироваться с помощью AWS cognito, используя токен facebook или google accesstoken, используя функции nodejs или lambda? - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь добавить AWS Cognito с логином Google и Facebook. Каким-то образом доступные плагины не работают с моими текущими настройками, и я не могу заставить их работать несколько дней. После добавления нескольких ошибок https://github.com/agnostech/flutter_amplify/issues/4 и https://github.com/furaiev/amazon-cognito-identity-dart-2/issues/42 без посторонней помощи до сих пор. Поэтому я подумал сделать запрос на получение / публикацию в lambda с токеном доступа (поскольку я вхожу в Facebook и Google, но не могу добавить пользователя в Cognito), и это добавит пользователя.

AWS.config.region = 'us-XXXXXXX-1';
// Add the Google access token to the Cognito credentials login map.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'us-XXXX-1:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    RoleArn: 'arn:aws:iam::XXXXXXXX:role/Cognito_XXXXXXXXXUnauth_Role',
    Logins: {
        'accounts.google.com': authResult['id_token']
    }
});

Я слежу за этим AWS Cognito + регистрация в Google но есть ли лучший способ сделать это на текущую дату? Также каждый раз, когда пользователь входит в систему, он пытается добавить пользователя в Cognito? Учитывая, что у нас есть только одна кнопка для подписи или регистрации.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 апреля 2020

Я только что прочитал это руководство, чтобы иметь Google Auth с Cognito. https://docs.aws.amazon.com/cognito/latest/developerguide/google.html

Это довольно просто, вам нужно войти в систему с помощью Google обычным способом, как только вы получаете токен доступа от Google, вы передаете его Cognito.

logins.put("accounts.google.com", token); credentialsProvider.setLogins(logins);

Пакетный способ,

Для этого есть плагин. Посмотрите на один из вариантов использования в руководстве. https://pub.dev/packages/amazon_cognito_identity_dart_2

Цитирование do c

Вариант использования 19. Использование этой библиотеки с федеративным входом Cognito на мобильных устройствах. Используйте flutter_webview (https://pub.dev/packages/webview_flutter), чтобы перейти к URL авторизации Cognito. Используйте навигационный элемент flutter_webview, чтобы перехватить перенаправление на myapp://?code=<AUTH_CODE>. Сделайте POST запрос на URL токена Cognito, чтобы получить ваши токены. Создайте сеанс и пользователя с токенами

...