Может ли Alexa заменить созданный UserId для связанного пользователя? - PullRequest
0 голосов
/ 15 февраля 2019

У нас есть приложение, использующее навык Alexa с привязкой учетной записи для получения сведений о пользователе.

Согласно привязке учетной записи Alexa документация :

enter image description here

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

Скажем, пользователь включил наш навык на своем устройстве, и в этот момент (согласно вышеупомянутым документам) ему была выдана Alexaсгенерировал userId, что-то вроде:

"userId": "amzn1.ask.account.AFMWOL5WIGQZLYYEMM2IJL2BJ26ICPQHBPR2DSLRX46CHW36R6CPVH7RZTUZMBCHHJLQQNU3YO2BWZWNIRTM3PCAGTNZKILK33PM2XVI36H4RSINFH2A26OLURAIB2RVPV6GMK56BR5BLBIFNJKT64EANASM7IDTQJBQLGDIEUZHUIM6VSHTTOUPVPITIPOIOPESUK53TSALU5I"

Следовательно, при дальнейшем взаимодействии со скиллом она хотела получить доступ к некоторой более персонализированной информации, которая активировала привязку аккаунта, поэтому ее личность была подтверждена и восстановлена ​​через предоставленный аккаунт.сведения о связывании (профиль кода авторизации OAuth 2), которые при этом, как уже упоминалось ранее, связались со сторонней системой управления идентификацией (не LWA) для проверки личности пользователя:

  • , с которой пользователю представляетсяна экране входа в систему
  • она вводит свои учетные данные, скажем: "alice"/"password123"
  • она отвечает на соответствующие вопросы, чтобы разрешить определенные действия, которые наше приложение может выполнять от ее имени и
  • разрешено в дальнейшем взаимодействовать с системой на более персонализированной бasis

Предположим, что внутри нашего приложения мы хотим иметь возможность идентифицировать пользователя по его реальному идентификатору userId: alice, а НЕ одному, автоматически назначенному Amazon, как описано выше.

  • Позволяет ли это Alexa?
  • При успешном связывании аккаунта Alexa перезаписывает в своем JSON-запросе (или может каким-то образом передать его, наряду с теперь встроенным полем accessToken) в userId, который он получает от стороннего провайдера идентификации), чтобы«реальный» userId (на языке OAuth он называется subjectId?) затем может быть использован для идентификации действий пользователя во время ее дальнейшего взаимодействия с приложением?

  • Если да, как мы можем получить информацию о пользователе из JSON через Alexa Java API?

  • Если нет, то какие будут возможные способы облегчить такую ​​способность?

  • Можно ли получить реальный userId из accessToken этого Alexaвставляет свой запрос после аутентификации пользователя?Если да, то как?

    Я не уверен, связано ли это с с этим , похоже, схожий запрос, он был добавлен в дорожную карту Alexa или уже стал функцией?

1 Ответ

0 голосов
/ 22 февраля 2019

Это, похоже, подробная версия Как получить userId, указанный пользователем Alexa при связывании аккаунта

Вообще говоря, после того, как пользователь завершил аутентификацию OAuth, приложение (т.е. Alexaв этом случае) получит access_token и refresh_token.Если вам нужны какие-либо дополнительные данные, например, имя пользователя alice, адрес электронной почты, телефон, адрес и т. Д., Вам необходимо проверить у своего поставщика OAuth и узнать, есть ли у них API для получения данных на основе access_token ссоответствующая сфера применения.

...