我们有一个应用程序利用Alexa技能与帐户链接的用户详细信息。
根据Alexa关于documentation的账号:
我们的技能是为帐户链接设置的,帐户链接又指用于用户身份验证的第三方(或可能是内部)身份管理系统(IMS)。我们的应用程序(以及我们的组织)不会在内部维护应用程序的用户身份。
假设用户在她的设备上启用了我们的技能,此时(根据上述文档),她被发布了一个Alexa生成的userId
,类似于:
"userId": "amzn1.ask.account.AFMWOL5WIGQZLYYEMM2IJL2BJ26ICPQHBPR2DSLRX46CHW36R6CPVH7RZTUZMBCHHJLQQNU3YO2BWZWNIRTM3PCAGTNZKILK33PM2XVI36H4RSINFH2A26OLURAIB2RVPV6GMK56BR5BLBIFNJKT64EANASM7IDTQJBQLGDIEUZHUIM6VSHTTOUPVPITIPOIOPESUK53TSALU5I"
因此,在与技能进一步互动后,她希望访问一些更加个性化的信息,这些信息会触发帐户关联,以便通过提供的帐户链接详细信息(OAuth 2授权代码配置文件)确认并重新建立其身份,同时这样做,之前提到联系第三方身份管理系统(不是LWA)来验证用户身份:
"alice"/"password123"
让我们说在我们的应用程序中,我们希望能够通过她的真实userId:alice
识别用户,而不是亚马逊自动分配的用户,如上所述。
accessToken
字段)从第三方身份提供商处收到的userId,以便那个“真正的”userId(它被称为在OAuth中使用subjectId?)然后可以用来识别她与应用程序进一步交互时的用户操作?accessToken
获取真实userId吗?如果是这样,怎么样?
我不确定它是否与this有关,似乎是一个类似的请求,它已被放在Alexa的路线图上或已成为一个功能?这似乎是How to obtain userId specified by Alexa user during account linking的详细版本
一般来说,在用户完成OAuth认证后,应用程序(在这种情况下为Alexa)将收到access_token
和refresh_token
。如果您想要任何其他数据,例如用户名alice
,电子邮件,电话,地址等等,您需要与您的OAuth提供商联系,看看他们是否有API来检索基于具有适当范围的access_token
的API。