Google Oauth2 Contacts API返回无效令牌:无状态令牌在一小时后过期

时间:2016-04-24 09:02:25

标签: python-3.x oauth-2.0 google-contacts django-allauth

我的设置有什么问题?

我正在使用django-allauth进行社交注册,最近我在其范围内添加了联系人。事情很好。它现在要求管理联系人的许可,我可以通过API获取用户的联系方式。

但是,一旦我发出请求获取用户的联系人(我当时没有保存任何刷新令牌或accss令牌),在我用同样的令牌再次发出请求一小时后,它会显示此错误&# 34;无效令牌:无状态令牌已过期"。

但是我仍然可以登录网站,令牌不会改变。但是,当我退出并再次登录时,令牌会发生变化,我可以再次使用该令牌获取联系人一小时。

问题是什么?我错过了什么?

1 个答案:

答案 0 :(得分:0)

请注意,当您登录网站时,您可能正在使用Cookie。所以基本上你可能正在使用相同的会话,实际上没有调用api。

当您以隐身模式或不同浏览器登录时,该cookie无法使用,因此这次调用api。出于这个原因,令牌正在改变。

例如,如果很少有用户注册谷歌后,您更改了应用的范围,会发生什么,如果用户启用了Cookie但未过期,当他访问您的网站时,它只会记录他in。它不要求权限(您最近添加到范围)。但是当他退出并再次登录时,它会询问额外的权限,并且令牌也会被更改。

你应该做的是,你应该浏览django-allauth的代码,并清楚它们如何使用令牌。您还必须知道,要获取刷新令牌,您必须在配置中启用脱机访问。