Exchange授权代码只能运行一次--Oauth2.0

时间:2015-03-11 11:08:33

标签: java oauth-2.0 google-api-java-client

我试图实现此代码。 https://developers.google.com/drive/web/credentials#retrieve_oauth_20_credentials

我有我的客户端ID和client_secrets json for webapps,因为我从电子表格中提取了一些值,一切正常,我的应用程序中已经有电子表格的数据。但我的问题是如何多次重复使用该授权代码?,因为我必须从该电子表格中提取更多数据,我的网址为http://localhost:8080/cluster/?state=/profile&code=xxxxxxx但是例如当我尝试刷新该页面时出现此错误出现。

发生错误:com.google.api.client.auth.oauth2.TokenResponseException:400错误请求 {   "错误" :" invalid_grant",   " ERROR_DESCRIPTION" :"代码已经兑换。" }

我有相同的url实现,但唯一的区别是我更改了这个方法storeCredentials(userId,credentials) - getStoredCredentials(userId)并将这些值放入db表。

那么,我如何实施交换授权代码'?以及如何将我的应用程序链接到新网址?

感谢您的帮助! :d

1 个答案:

答案 0 :(得分:0)

首先,遵循协议授权代码必须使用一次,因此auth服务器必须在首次使用后使其无效。

如果您想将其用于实施的其他部分,您可以保存,使用它并使用您的getStoredCredentials方法将302重定向发送到您的其他页面