2017-12-18 200 views
1

我使用的是Azure App Service的Easy Auth功能,我试图用Google提供程序刷新令牌。为什么谷歌代币不能用Easy Auth刷新?

我跟着Chris Gillum article正确地叫.auth/login/googleaccess_type=offline参数。然后我打电话给.auth/refresh,它给我一个200 OK并带有一个新的authenticationToken。但是,当我通过调用.auth/me来检查此ZUMO令牌的声明时,我可以看到Google令牌实际上并未刷新,尽管前面的回应成功了。 exp声明(对应于到期时间)与上一个令牌相同。

我尝试了几种方案:在收到它之后立即刷新令牌,在过期时间之前10分钟和过期时间之后(当令牌不再有效时),但在每种情况下,Easy Auth都会返回一个新的ZUMO令牌但关联的Google令牌总是相同的。

.auth/refresh端点始终向Google提供商返回相同标记(与exp版权声明相同)是否正常?

回答

0

由于Exchange authorization code for refresh and access tokens有关refresh_token状态:

,你可以使用它来获取新的访问令牌的令牌。 刷新令牌有效,直到用户撤销访问。请注意,刷新令牌总是为安装的应用程序返回。

而且从Refreshing an access token响应仅包含access_tokenexpires_in(接入令牌的以秒剩余寿命),token_type

.auth/refresh端点始终与Google提供程序返回相同的标记(相同的exp声明)是否正常?

下您的应用程序服务的监视部分使用日志流,你可以调用.auth/refresh当找到详细的日志如下:

enter image description here

此外,exp索赔时调用.auth/me代表到期时间为authenticationToken而不是refresh_token

enter image description here

而且你可以利用jwt.ioauthenticationToken解码,并将其与exp用户要求进行比较。