我们已经为Alexa定制技能配置了“授权码授予”选项的a/c链接。链接很好,但只是想澄清一些事情-
1) 在a/c链接设置中,我们有一个选项“默认访问令牌过期时间”。Alexa是否在此处以指定的间隔自动刷新访问令牌?
2) 如果我已经完成了a/c链接,并且之后保持空闲,即长时间(2周)不使用Alexa设备。它是否仍会在指定的时间间隔内刷新我的令牌,还是仅在我们使用设置时才刷新?
3) 在刷新令牌时,我认为Alexa希望授权服务器在4.5s内做出响应。若授权服务器在尝试刷新令牌时由于某种原因停机,它会一直尝试,直到收到新的访问令牌,还是会在几次重试后停止?
如有上述任何意见,将不胜感激。
仅限Google:由于Google的oauth架构,刷新令牌仅在用户首次授权时提供。如果您对同一帐户多次授权(例如,在测试时),该特定帐户将不会返回刷新令牌,因此当我们的服务请求刷新令牌时,不会返回任何刷新令牌。从google进行查询时,也可能没有将access_type=设置为脱机,这意味着您没有请求刷新令牌。要修复使用刷新令牌的任何特定帐户,请转到https://www.google.com/settings/u/1/security并从您的应用程序中撤消访问权限。然后,下次您进行身份验证时,它会将其视为第一次身份验证,并且该技能应再次正确刷新。
从https://forums.developer.amazon.com/articles/38610/alexa-debugging-account-linking.html
>
仅当用户访问您的技能且访问\u令牌
过期且具有刷新\u令牌
时。
是的,只要之前提供了refresh_token
并且用户没有禁用和重新启用您的技能。
我已经阅读了JWT和访问令牌和刷新令牌。我知道您必须在很短的时间(分钟)内设置访问令牌过期,并在过期时使用刷新令牌获取新的访问令牌。 我不清楚三件事: 谁检查访问令牌是否过期?客户端是否通过发送过期的访问令牌和刷新来检查并请求新的访问代码? 谁检查刷新令牌是否过期?(显然刷新令牌也需要过期,尽管需要更长的时间才能过期)。 在我看来,如果刷新令牌过期,则必须提示用户重新登录。在某些情况下(移动应用)
我正在构建一个使用JWT进行身份验证的应用程序。我开始做一些研究,但对于诸如刷新令牌和令牌存储之类的主题缺乏共识,我感到惊讶。 据我所知,JWT和OAuth是两个不同的协议,它们遵循不同的规范。 但我的问题是,对于一个没有通过第三方资源服务器如Google、Facebook等认证的应用程序,有一个刷新令牌真的有用吗?为什么不让JWT令牌像刷新令牌一样持续时间长。 另一方面,我可以看到,如本文所述,
这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre
null 很抱歉太啰嗦了。 提前谢了。
授权服务器可以给Web应用客户端和本机应用程序客户端颁发刷新令牌。 刷新令牌在传输和储存时必须保持机密性,并只与授权服务器和刷新令牌被颁发的客户端共享。授权服务器必须维护刷新令牌和它被颁发给的客户端之间的绑定。刷新令牌必须只能使用带有RFC2818定义的服务器身份验证的1.6所述的TLS 传输。 授权服务器必须验证刷新令牌和客户端身份之间的绑定,无论客户端身份是否能被验证。当无法进行客户端身份验证
刷新令牌是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端,用于在当前访问令牌失效或过期时,获取一个新的访问令牌,或者获得相等或更窄范围的额外的访问令牌(访问令牌可能具有比资源所有者所授权的更短的生命周期和更少的权限)。颁发刷新令牌是可选的,由授权服务器决定。如果授权服务器颁发刷新令牌,在颁发访问令牌时它被包含在内(即图1中的步骤D)。 刷新令牌是一个代表由资源所有者给客户端许可的授权的字