我正在尝试实现此代码。 https://developers.google.com/drive/web/credentials#retrieve_oauth_20_credentials
我有网络应用程序的客户端 ID 和 client_secrets json,因为我正在从电子表格中提取一些值,一切正常,并且我的应用程序中已经有电子表格的数据。但我的问题是如何多次重复使用该授权代码?因为我必须从该电子表格中提取更多数据,所以我的 URL 是 http://localhost:8080/cluster/?state=/profile&code=xxxxxxx但例如,当我尝试刷新该页面时,会出现此错误。
发生错误:com.google.api.client.auth.oauth2.TokenResponseException:400 错误请求 { “错误”:“无效的授权”, "error_description": "代码已兑换。" }
我有相同的 url 实现,但唯一的区别是我更改了此方法 storeCredentials(userId, credentials) - getStoredCredentials(userId) 并将该值放入数据库表中。
那么,如何实现“兑换授权码”呢?以及如何将我的应用程序链接到新网址?
感谢您的帮助! :D
最佳答案
首先,按照协议(protocol),授权码必须使用一次,因此身份验证服务器必须在第一次使用后使其失效。
如果您想将其用于实现的其他部分,您可以保存它,使用它并向使用 getStoredCredentials 方法的其他页面发送 302 重定向
关于java - 交换授权码只能使用一次 - Oauth 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985008/