我对如何将Cognito设置为Alexa中的帐户链接提供程序感到困惑。到目前为止,在Alexa,我有以下内容:
授权网址
https://[domain].auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=[clientID]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[random]
这由this端点的文档备份。然后我认为访问令牌URI 将遵循:
https://[domain].auth.us-east-1.amazoncognito.com/oauth2/token?grant_type=code&client_id=[clientID]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[random]
此端点也在docs中。但这不起作用,我也对Amazon如何将代码从auth端点传递到令牌端点感到困惑。我见过人们使用:
https://pitangui.amazon.com/api/skill/link/[random]?grant_type=code&client_id=[clientID]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[random]
哪个是帐户关联的重定向URI。在Alexa应用程序和Alexa网站中,我得到重定向不匹配。所有重定向都匹配。
我可以使用隐式流程来正常工作,但我需要让它与auth代码流一起工作,这样我才能拥有自刷新令牌。
答案 0 :(得分:8)
我得到了它的工作,这是我必须做的:
Alexa Skill配置页面需要以下内容:
文档说状态是可选的,但如果没有它,我就无法使用Auth Code流程。
客户端ID:与授权网址中的客户端ID相同。这来自Cognito中的App Clients页面。这对我来说是一个很大的问题,我认为这是随机的但不是,它需要匹配上面的客户端ID。
域名列表,范围:我不需要这些。
授权授权类型:验证代码授予
客户端密码:这来自Cognito中的App Clients页面。
已启用身份提供商:Cognito用户池
回调网址: https://pitangui.amazon.com/api/skill/link/[vendor-id-amazon-gives-you-in-alexa-config-page]
我在这里放弃了Implicit Grant作为奖励:
正如我先前所说,我不必在这里使用州。
客户端ID:与授权网址中的客户端ID相同。这来自Cognito中的App Clients页面。这对我来说是一个很大的问题,我认为这是随机的但不是,它需要匹配上面的客户端ID。
域名列表,范围:我不需要这些。
授权授权类型:隐式授权
已启用身份提供商:Cognito用户池