refresh token
мало чем отличается от токенов авторизации. OAuth2.0 имеет несколько потоков, которые могут быть использованы для доступа к серверам. Общим (и самым надежным) потоком является так называемый Код авторизационного кода (detailed info here).
Там ваше приложение просит авторизационный сервер для authorization code
при первом обращении пользователя к вашему приложению. Пользователь получит этот authorization code
через веб-сайт, когда он войдет в систему и предоставит вашему приложению доступ к сервису. Ваше приложение отправляет этот код на сервер авторизации , чтобы получить первые access token
(а вместе с ним и refresh token
). Это тот же сервер, который вам необходимо отправить refresh token
.
Теперь, я не знаю точно, что Ури сервера в вашем случае, но это было бы примером запроса POST вы можете отправить на сервер:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_CLIENT_ID_HERE&
client_secret=YOUR_CLIENT_SECRET_HERE&
refresh_token=THE_REFRESH_TOKEN_HERE&
grant_type=refresh_token
Если запрос действителен, сервер ответит новым Access Token
. Here вы можете найти более подробную информацию о конкретных запросах, которые вы можете сделать.
Имейте в виду, что каждый токен (токены доступа и обновления) должен храниться в памяти. Лучший способ сделать это - сохранить его в зашифрованном виде и при отправке токенов использовать только POST и https. Но это был не ваш вопрос.
Надеюсь, я справлюсь с этим.
где именно лежит проблема? Вы не можете получить refreshtoken или вы не знаете, как использовать его для обновления токена доступа? – GameDroids
Я не знаю, как использовать строку refreshtoken (которую я могу получить) для создания нового объекта учетных данных и обновления токена доступа. Альвин – Alwin