当前位置: 首页 > 知识库问答 >
问题:

AWS Cognito和Alexa帐户链接的正确访问令牌URI是什么?

通建安
2023-03-14

我有点困惑,如何设置Cognito作为在Alexa帐户链接提供商。到目前为止,在阿列克谢,我有以下:

授权URL:

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]

这由该endpoint的文档进行备份。然后,我认为访问令牌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]

该endpoint也在文档中。但这不起作用,而且我还对Amazon如何将代码从authendpoint传递到令牌endpoint感到困惑。我见过人们使用:

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

我可以使用隐式流很好地实现这一点,但是我需要让它与身份验证代码流一起工作,这样我就可以拥有自我刷新的令牌。

共有1个答案

魏冷勋
2023-03-14

我让它工作,这是我必须做的:

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

授权URL:https://[您的cognito域]。auth。美国东部1号。亚马逊科尼托。com/oauth2/authorize?响应类型=代码

文档说状态是可选的,但是没有它,我无法让身份验证代码流工作。

客户端ID:与授权URL中的客户端ID相同。这来自Cognito中的应用客户端页面。这对我来说是一个很大的陷阱,我以为这是随机的,但是不,它需要匹配上面的客户端标识。

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

授权授予类型: Auth Code Grant

访问令牌URI:https://[您的cognito域]。auth。美国东部1号。亚马逊科尼托。com/oauth2/token?state=[与auth url中的字符串相同]

客户端秘密:这来自Cognito中的应用客户端页面。

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

回调URL:https://pitangui.amazon.com/api/skill/link/[亚马逊在alexa配置页面中提供的供应商id]

注销URL:https://[您的cognito域]。auth。美国东部1号。亚马逊科尼托。com/注销?响应类型=代码

我在这里放弃隐性补助金作为奖金:

授权URL:https://[您的cognito域]。auth。美国东部1号。亚马逊科尼托。com/oauth2/authorize?响应类型=令牌

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

客户端ID:与授权URL中的客户端ID相同。这来自Cognito中的应用客户端页面。这对我来说是一个很大的陷阱,我以为这是随机的,但是不,它需要匹配上面的客户端标识。

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

授权授予类型:隐式授予

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

回调URL:https://layla.amazon.com/spa/skill/account-linking-status.html?vendorId=[亚马逊在alexa配置页面中提供的供应商id]

登出网址:https://[you-Coinito-field]。auth.us-east-1.amazoncognito.com/logout?response_type=token

 类似资料:
  • ​我正在尝试使用alexa帐户链接的隐式授权流。我的访问令牌仅在一年内有效。 如何要求用户再次登录以获取新的访问令牌 我可以与Amazon共享刷新令牌而不是访问令牌吗

  • alexa skill不会将请求中的“客户端机密”发送到令牌endpoint,这会导致我的OAuth服务器中的帐户链接失败。请求正文包含:{'grant_type':'authorization_code','code':'*******','redirect_uri':'https://pitangui.amazon.com/api/skill/***“,”客户id:“******”}

  • 我在Alexa帐户链接授权方面遇到了一些问题。 以下是我遵循的步骤: 我从谷歌云控制台获得了凭据(客户端ID,客户端秘密...) Alexa开发人员控制台上的安装程序,使用授权代码授予作为授权授予类型 激活了我Alexa应用程序上的技能,并用我的Google帐户成功登录 现在我在请求中得到了访问令牌,在 问题是访问令牌在一小时后过期,Alexa不管理令牌的刷新。 我应该怎么做才能避免每次一小时后都

  • 我正在创建一个帐户链接Alexa技能。我得到了链接授权码并将其交换为访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到一个信息:“无效的帐户链接凭据”。 要怎么做?

  • 你会认为亚马逊的两种产品会很好地整合在一起。你还会认为亚马逊会在他们的服务上留档。两者都大错特错。 我正在使用与Alexa的帐户链接,并使用AWS Cognito作为我的oauth提供商。我能够成功地链接我的帐户只是罚款,并与每一个后续的alexa调用我得到一个访问令牌返回给我。现在怎么办? 我需要能够从alexa lambda功能访问其他AWS服务,如dynamo、lambda和iot。我想这很

  • 我的技能需要帐户链接,它将通过OAuth 2.0协议使用AWS cognito用户池对客户进行身份验证。我可以在用户池中指定刷新令牌的TTL,我决定将其有效期设置为60天。 据我所知,alexa将访问令牌与您的技能收到的每个请求一起发送给您,以便您能够识别使用该技能的客户。如果他们的访问令牌过期,alexa将通过在将带有访问令牌的请求转发给您之前刷新他们的令牌来处理此问题。因此,您可以拥有有效的访