【问题标题】:What is the correct Access Token URI for AWS Cognito and Alexa account linking?AWS Cognito 和 Alexa 账户链接的正确访问令牌 URI 是什么?
【发布时间】:2018-02-07 15:12:21
【问题描述】:

对于如何将 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 端点的文档支持。然后我会认为 Access Token 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 中。但这不起作用,我也对亚马逊如何将代码从身份验证端点传递到令牌端点感到困惑。我见过人们使用:

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 站点中,我得到了重定向不匹配。所有重定向都匹配。

我可以使用隐式流程让它正常工作,但我需要让它与身份验证代码流一起工作,这样我才能拥有自刷新令牌。

【问题讨论】:

    标签: amazon-web-services amazon-cognito alexa-skills-kit alexa-skill


    【解决方案1】:

    我得到了它的工作,这是我必须做的:

    验证码流程:

    Alexa Skill 配置页面需要以下内容:

    帐号关联:

    授权网址: https://[your-cognito-domain].auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=[your-client-id]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[vendor-id-amazon-gives-you]&state=[random-string-of-your-choosing]

    文档说状态是可选的,但没有它我无法让 Auth Code 流程工作。

    客户端 ID: 与授权 URL 中的客户端 ID 相同。这来自 Cognito 中的 App Clients 页面。这对我来说是个大问题,我认为这是随机的,但不,它需要与上面的客户端 ID 匹配。

    域列表,范围:我不需要这些。

    授权授权类型:授权码授权

    访问令牌 URI: https://[your-cognito-domain].auth.us-east-1.amazoncognito.com/oauth2/token?state=[same-string-as-the-one-in-auth-url]

    Client Secret:这来自 Cognito 中的 App Clients 页面。

    Cognito 应用客户端设置:

    启用的身份提供者: Cognito 用户池

    回调网址: https://pitangui.amazon.com/api/skill/link/[vendor-id-amazon-gives-you-in-alexa-config-page]

    退出网址:https://[your-cognito-domain].auth.us-east-1.amazoncognito.com/logout?response_type=code&client_id=[your-client-id]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[vendor-id-amazon-gives-you]

    作为奖励,我在这里放弃了隐式赠款:

    隐式授权流程:

    授权网址: https://[your-cognito-domain].auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=token&client_id=[your-client-id]&redirect_uri=https://pitangui.amazon.com/api/skill/link/[vendor-id-amazon-gives-you]

    正如我之前所说,我不必在这里使用状态。

    客户端 ID: 与授权 URL 中的客户端 ID 相同。这来自 Cognito 中的 App Clients 页面。这对我来说是个大问题,我认为这是随机的,但不,它需要与上面的客户端 ID 匹配。

    域列表,范围:我不需要这些。

    授权授予类型:隐式授予

    Cognito 应用客户端设置:

    启用的身份提供者: Cognito 用户池

    回调网址: https://layla.amazon.com/spa/skill/account-linking-status.html?vendorId=[vendor-id-amazon-gives-you-in-alexa-config-page]

    退出网址: https://[your-cognito-domain].auth.us-east-1.amazoncognito.com/logout?response_type=token&client_id=[your-client-id]&redirect_uri=https://layla.amazon.com/spa/skill/account-linking-status.html?vendorId=[vendor-id-amazon-gives-you-in-alexa-config-page]

    【讨论】:

    • 我真的需要这个,但我没有得到,比如layla.amazon.com 和pitangui.amazon.com。它是随机的还是特定于用户的?
    • @myke_11j 来自亚马逊。你可以使用它们中的任何一个,它们应该都可以工作。我不知道这些名字是从哪里来的。
    • 这是我在 Internet 上找到的唯一一个描述如何使其正常工作的地方。我正在使用 Alexa for Business,这在文档和测试方面增加了一些挑战。可以向 A4B 用户确认这是一条不错的路径!
    猜你喜欢
    • 2017-04-20
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2021-12-21
    • 2018-08-10
    • 2020-07-29
    • 2020-12-04
    相关资源
    最近更新 更多