【问题标题】:Does / can Alexa replace its generated UserId for a linked user?Alexa 是否/可以替换其为链接用户生成的 UserId?
【发布时间】:2019-07-08 23:49:12
【问题描述】:

我们有一个使用 Alexa 技能的应用程序,通过帐户链接来获取用户详细信息。

根据Alexa的账号链接documentation

我们的技能是为帐户链接设置的,而帐户链接又是指用于用户身份验证的第 3 方(或可能是内部的)身份管理系统 (IMS)。我们的应用程序(以及我们的组织)不会在内部维护应用程序的用户身份。

假设用户在她的设备上启用了我们的技能,此时(根据上述文档)她收到了 Alexa 生成的userId,类似于:

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

因此,在与该技能进一步交互后,她希望访问一些触发帐户关联的更个性化的信息,以便通过提供的帐户关联详细信息(OAuth 2 授权代码配置文件)确认并重新建立她的身份,而这样做所以,如前所述,联系了第 3 方身份管理系统(不是 LWA)来验证用户身份:

  • 用户会看到一个登录屏幕,
  • 她输入她的凭据,说:"alice"/"password123"
  • 她回答了相关问题以允许我们的应用可以代表她执行某些操作,并且
  • 允许在更个性化的基础上进一步与系统交互

假设在我们的应用程序中,我们希望能够通过她的真实用户 ID:alice 来识别用户,而不是如上所述由亚马逊自动分配的用户。

  • Alexa 是否允许这样做?
  • 在成功连接帐户后,Alexa 是否会在其 JSON 请求中覆盖(或者它能否以某种方式通过它,以及现在嵌入的 accessToken 字段)它从第 3 方身份提供者接收到的 userId,以便“真实” userId(在 OAuth 用语中称为 subjectId 吗?)然后可以用于在她与应用程序的进一步交互期间识别用户操作吗?

  • 如果是,我们如何通过 Alexa Java API 从 JSON 获取用户详细信息?

  • 如果不是,有哪些方法可以促进这种能力?

  • 在验证用户身份后,Alexa在其请求中放入的accessToken能否获取真实的userId?如果有,怎么做?

    我不确定它是否与this 相关,似乎是一个类似的请求,它是否已被列入 Alexa 的路线图或已经成为一项功能?

【问题讨论】:

    标签: authentication oauth-2.0 alexa alexa-skills-kit identity-management


    【解决方案1】:

    这好像是How to obtain userId specified by Alexa user during account linking的详细版

    一般来说,在用户完成 OAuth 身份验证后,应用程序(即本例中的 Alexa)会收到 access_tokenrefresh_token。如果您想要任何其他数据,例如用户名alice、电子邮件、电话、地址...等,您需要与您的 OAuth 提供商核实,看看他们是否有一个 API 来检索基于 access_token 并具有适当范围的那些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 2021-09-23
      • 2014-01-19
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      相关资源
      最近更新 更多