Вход в AWS Cognito с Android без учетных данных AWS

Я уже использую AWS Cognito для аутентификации веб-приложения (используя размещенный пользовательский интерфейс и flask_awscognito). Пул пользователей уже создан, и все создание пользователей или любое другое управление пулом пользователей выполняется вне приложения (например, непосредственно через консоль, CloudFormation или подобное). Теперь мы хотим аутентифицировать пользователей из приложения для Android, и очень сложно понять, как это сделать.

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

Есть ли (какая-либо документация) способ простой аутентификации пользователя в пользовательском пуле когнитивных систем для Android? Это должно быть похоже на аутентификацию для веб-приложения, с той разницей, что любое взаимодействие с размещенным пользовательским интерфейсом, если требуется, должно быть программным, а не путем перенаправления на страницу входа, размещенную на AWS.

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


person bandjalong    schedule 05.10.2020    source источник


Ответы (1)


Оказывается, можно пройти аутентификацию с Android без Amplify. Уловка состоит в том, чтобы использовать глубокую ссылку, при которой URL-адрес может быть направлен в приложение на устройстве. Мы добавили URL-адрес к настроенным URL-адресам обратного вызова для пула пользователей и настроили приложение Android для обработки этого URL-адреса. Затем процесс выглядит следующим образом: для входа в систему из приложения приложение открывает веб-представление размещенного пользовательского интерфейса, указывая вновь настроенный URL-адрес обратного вызова. Когда пользователь успешно вошел в систему через размещенные страницы, перенаправление возвращается с новым URL-адресом, который теперь получает приложение. Мы перешли на запрос токена напрямую (а не на получение кода обратно), чтобы избежать необходимости проходить через протокол для обмена кода на токен.

Ответ на этот вопрос оказался полезным: Пользовательский интерфейс, размещенный на Cognito

person bandjalong    schedule 11.10.2020