我获得了临时访问令牌,serverAuthCode,Web客户端ID及其密码,我正试图从oathplayground获取刷新令牌,但我收到了无效的授予错误。我已经多次检查了令牌,但是仍然收到相同的错误。这是屏幕截图:
我该怎么做才能获得刷新令牌?有关更多信息,我正在使用react-native-google-sign-in库,从该库中,我获得了1. access_token ServerAuthCode。从Google Developers控制台中,我获得了1.Web Client Id 2.Client Secret,我在react native应用程序中使用了这些凭据,并且我成功地获得了令牌,但是问题是有时它们可以正常工作,而且大多数情况下我都可以当我尝试使用访问令牌时出现“无效凭据”错误,这是因为访问令牌已过期,这就是为什么我需要刷新令牌的原因。如果您有任何想法为什么我无法获取刷新令牌或如何使用其他方法获取刷新令牌,请让我知道。
我了解我做错了,我使用的不是最新的serverAuthCode,这应该是您首次允许该应用程序获得权限时的最新版本,并且只有在您进行交换后才可以使用它作为刷新令牌,它将无法再次使用,并且始终会为您提供grant_error。因此,在获取刷新令牌后,您可以获取一个新的刷新访问令牌。我使用的是react-native-google-sign-in,并且需要刷新的令牌,请阅读以下内容以了解更多有关该令牌的信息。
对于React-native-google-Signin:您将从GoogleSignin.getTokens();
收到的访问令牌仅持续约一个小时,要获取新的access_token,我们需要将serverAuthCode
,https://oauth2.googleapis.com/token
,client_id
字段发送到client_secret
是serverAuthCode),code
(其值应为authorization_code),grant_type
(可以从开发人员控制台进行设置)。请记住,仅在您第一次允许应用程序获得权限时才使用您初次尝试时使用的redirect_uri
,否则每次都会出现grant_error。在获取serverAuthCode
之后,我们需要使用刚刚获得的刷新令牌来获取新的refresh_token
,因此现在只需将access_token
的值从grant_type
替换为authorization_code
,然后还要替换refresh_token
的值]字段添加到code
,填写其值,然后将发布请求发送到同一网址,您将获得一个新鲜的refresh_token
,该有效期为1小时。