禁用技能后立即重新启用账号绑定失败

Account linking fails if I re-enable immediately after diasbling the skill

我正在开发一项需要帐户链接的 alexa 技能。帐户链接首先成功 2 次(启用技能 - 禁用它 - 然后再次重新启用技能)。仅当我在禁用该技能后立即重新启用时,帐户链接才会失败。我使用代码授权授权类型。数据(在查询字符串 state/code/etc 中)成功重定向回亚马逊的 redirect/return url 值。但是亚马逊结束了账户链接过程,并显示一条消息,说明此时账户链接过程失败。谁能有任何想法?非常感谢您的帮助。

答:终于找到问题了。授权服务器在 2 台机器 (instanes) 中运行。授权服务器使用并发字典来存储访问令牌。并发字典使用本地内存(在进程内存中)。在身份验证期间,Amazon 连接到其中一个 Auth 服务器;该 Auth 服务器将访问代码存储在其内存存储中。当 Amazon 尝试使用之前返回给 Amazon 的代码值从我的授权服务器获取访问代码时,第二个授权服务器被击中。第二个身份验证服务器没有亚马逊提供的代码的访问令牌,因此它使请求无效。解决方案是使用共享存储(在进程内存之外,如 REDIS 缓存)来存储访问代码。这样两个授权服务器就可以通过引用同一商店来为请求提供服务。