首页 > 解决方案 > 使用 LWA 的 Alexa BDD 测试的 Authcode

问题描述

在 Accountlinking 期间,Alexa 服务器使用其 Authcode 启动 Acceptgrant API,以便可以将其交换为 Access Token。我想测试接受 Authcode(邮递员或 BDD 测试)的 API。我们如何生成这个?这对自动化测试非常有帮助。

我已经尝试使用 AWS JS SDK 进行 LWA。我们需要在安全配置文件中将服务器列入白名单。这基本上会打开一个浏览器实例并将 Authcode 附加到 redirect_uri。除了这个还有其他方法吗?我阅读了有关 CLI 的信息,我们可以在其中获取 accesstoken 但不能获取 authcode。

此外,当我们创建一项技能时,它会生成一个 ClientId。此 ClientId 是否有任何安全配置文件?如何将我的服务器列入此 ClientId 的白名单?我没有找到将此客户端 ID 链接到安全配置文件的方法。

更多信息:我将详细说明。基本上,当用户从 Alexa UI 启用技能时,Alexa 在帐户链接期间发送 AcceptGrant 指令。AcceptGrant 由 Authcode 组成,因此用户/企业(智能设备制造商云)可以使用 LWA 获得 accesstoken。所以现在业务已经公开了接受 Authcode 的 API。现在我正在尝试测试这个 API。目前我找不到生成此令牌的方法。

如果我使用 LWA 流生成 authcode,这需要一个 redirect_uri。但是,如果我使用 Alexa 发送的代码(在帐户链接流程期间),则不需要 redirect_uri。从这个页面

https://developer.amazon.com/docs/login-with-amazon/authorization-code-grant.html#access-token-request

如果我使用 AWS JS SDK,它不需要 redirect_uri 来请求 access_token 。当我尝试 AWS JS 生成身份验证码时,我收到一个安全错误,要求用户将域列入白名单。而且我找不到将 Alexa 的 client_id 列入安全配置文件的白名单的方法。

标签: amazon-web-servicesoauth-2.0automationaws-sdkalexa

解决方案


在技​​能链接中,从技能链接到 3p 服务器,Alexa 处理身份验证代码交换并为您检索访问令牌。身份验证代码永远不会暴露给该技能,因为您不需要它。

只好一次。之后,您将使用使用身份验证代码时返回的刷新令牌。

也许如果您描述了您要完成的用例以及您认为需要代码的原因,那么就有可能为您提供更多有用的帮助。


推荐阅读