недействительный грант oauthplayground, пытающийся получить refre sh токен - PullRequest
0 голосов
/ 13 апреля 2020

Я получил временный токен доступа, serverAuthCode, идентификатор веб-клиента и его секрет, я пытаюсь получить refre sh токен из oathplayground, но получаю ошибку недопустимого предоставления. Я перепроверил токены много раз, но все еще получаю ту же ошибку. Вот скриншоты:

enter image description here

enter image description here

enter image description here

Что я могу сделать, чтобы получить токены refre sh? Для получения дополнительной информации я использую библиотеку реагировать на родной Google, из этой библиотеки я получил 1. access_token, ServerAuthCode. С консоли Google Developers я получил 1.Web Client Id 2.Client Secret, я использую эти учетные данные внутри собственного приложения реагирования, и я успешно получаю токены, но проблема в том, что иногда они работают, и большую часть времени я получаю Ошибка «неверные учетные данные», когда я пытаюсь использовать токен доступа, потому что срок действия токена истек, поэтому мне нужен токен refre sh. Если у вас есть идея, почему я не могу получить refre sh токен или как получить refre sh токен другим способом, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 14 апреля 2020

Я понял, что я делаю неправильно, я использовал не обновленный serverAuthCode, он должен быть последним + первый раз, когда вы разрешили приложению разрешения, и оно будет работать только в первый раз, после того как вы обменял его на refre sh токен, он не будет работать снова и всегда даст вам grant_error. Таким образом, после получения токена refre sh вы можете получить новый обновленный токен доступа. Я использовал реакцию-native-google-sign-in и мне нужен обновленный токен. Чтобы узнать больше о том же, прочитайте ниже.

Для React-native-google-sign-in: токен доступа получение от GoogleSignin.getTokens(); будет длиться около часа, чтобы получить новый access_token, нам нужно отправить serverAuthCode на https://oauth2.googleapis.com/token с полями: client_id, client_secret, code (это serverAuthCode), grant_type (его значение должно быть authorization_code), redirect_uri (можно установить из консоли разработчика). Не забывайте использовать serverAuthCode, который вы получаете при первой попытке, когда вы только что разрешили своему приложению использовать разрешения в ПЕРВЫЙ РАЗ, в противном случае вы будете каждый раз получать grant_error. После получения refresh_token нам нужно получить новый access_token, используя только что полученный токен refre sh, поэтому теперь просто замените значение grant_type с authorization_code на refresh_token, а также замените значение поля code на refresh_token, заполните его значение и отправьте запрос на тот же URL, вы получите fre sh access_token, который будет действителен в течение 1 часа.

...