Кстати, это решение работает только в том случае, если пользователь сначала авторизовал приложение, после чего его можно использовать для входа без необходимости использования встроенного пользовательского интерфейса. Так что я думаю, что сейчас нет другого пути, кроме как использовать пользовательский интерфейс ...: ((

ел бы использоватьCognito User Pool только для входа в Facebook, что возможно при использовании встроенной формы входа, но мне нужно использовать свое собственное.

Теоретически, когда дело доходит до настраиваемой формы, это не должно быть сложно: после того, как я получаю объект пользователя от FB, я связываю атрибуты user и email с теми, что в моем пуле пользователей, и сохраняю их.

Но что делать с паролем и будущей аутентификацией? И здесь я потерпел неудачу во время моего путешествия ...

...
userPool.signUp('FoobarUser', '**password?**', attributeList, null, function(err, result){
...

Копаясь глубже в документы, я попытался реализоватьпул удостоверений (федеративные удостоверения)удалось сохранить информацию о пользователе в видеНаборы данных также, но потом я понял, что запрос этих наборов будет огромной болью, если это вообще возможно.

Может быть, я не понимаю концепции, я был бы очень благодарен, если бы кто-то мог предложить способ управления входами в Facebook в хорошо организованной манере с использованием Cognito.

Ответы на вопрос(1)

Решение Вопроса

Настроить

Ссылка Facebook на пул пользователейКлиент приложения позволяет только вход в Facebook, никакие другие провайдеры не допускаются (даже Userpool)При входе в систему вы хотите, чтобы информация пользователя Facebook автоматически заполнялась в вашем пулеВы не хотите использовать встроенный пользовательский интерфейс Cognito, но используете свой собственный

Мои 2 цента

В вашем клиенте приложения просто выберите Facebook

В вашем интерфейсе есть кнопка входа. При нажатии он должен перенаправить на ваш пул пользователейавторизация конечная точка

https://your_domain.auth.us-east-1.amazoncognito.com/oauth2/authorize?redirect_uri=https://www.example.com&response_type=token&client_id=your_appclient_id

Если вы хотите использовать свой собственный пользовательский интерфейс с несколькими провайдерами, разрешите то же самое в клиенте и, нажав соответствующую кнопку в своем пользовательском интерфейсе (скажем, в Facebook), перенаправьте пользователей на конечную точку авторизации, но добавьте в поле identity_provider

https://your_domain.auth.us-east-1.amazoncognito.com/oauth2/authorize?redirect_uri=https://www.example.com&response_type=token&client_id=your_appclient_id&identity_provider=Facebook

Если вы хотите увидеть имена всех поддерживаемых поставщиков удостоверений, используйтеListIdentityProviders Вызов API

Таким образом, все пользователи Facebook будут автоматически созданы в вашем пуле. Конечно, их имена будут случайными, какFacebook_123jkjdwj но все их данные будут правильно заполнены с токена в соответствии с вашим отображением атрибута. В качестве плюса все автоматически созданные пользователи из определенного провайдера добавляются в автоматически созданную группу «Userpoolid_providername», например. us_east_1_xxxx_Facebook.

 Edmond Tamas31 окт. 2017 г., 17:46
Кстати, это решение работает только в том случае, если пользователь сначала авторизовал приложение, после чего его можно использовать для входа без необходимости использования встроенного пользовательского интерфейса. Так что я думаю, что сейчас нет другого пути, кроме как использовать пользовательский интерфейс ...: ((
 Edmond Tamas31 окт. 2017 г., 13:36
ааа, ты R человек! : D - Спасибо!

Ваш ответ на вопрос