Google帐户访问令牌
答
由于这是GWT代码,它在客户端使用客户端JavaScript执行。从客户端JavaScript中获取长寿命的访问令牌是不可能的。当前颁发的令牌持续60分钟 - 并且您可以随后在没有任何用户交互的情况下获取另一个令牌(因为该用户已经批准了OAuth许可请求)。这应该足以让所有客户端访问用户的数据。
如果您习惯使用服务器端代码,则可以使用OAuth 2.0 flow for server-side web applications,并指定access_type=offline
。这会为您提供一个作为查询参数传递的授权代码 - 然后您将进行服务器到服务器的调用,以交换访问令牌的授权代码。您第一次为特定用户交换代码时,您还将获得刷新令牌。尽管访问令牌将过期,但刷新令牌可以无限期地使用,通过简单地进行服务器到服务器的调用来为该用户获取新的访问令牌。
“以后你总是可以在没有任何用户交互的情况下获得另一个标记”:当我尝试使用oauth2-0.2获取一个访问标记时,它会打开一个弹出窗口。所以即使用户已经批准了授权请求,它仍然会打开一个弹出窗口并立即关闭。有没有办法绕过这个? – allenylzhou