Google OAuth2: Почему гугл меня редиректит, вместо того, чтобы выдать новый access-токен
Делаю GET запрос:
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline
&client_id=XXXXX.apps.googleusercontent.com
&nonce=XXXX
&prompt=consent
&redirect_uri=http://localhost:3000/api/oauth/gmail/callback
&response_type=code
&scope=https://mail.google.com/
&state=XXXXX
Получаю редиректом на localhost:3000 данные:
{"access_token"=> "ya29...",
"expires_in"=>3599,
"refresh_token"=>"1//0c...",
"scope"=>"https://mail.google.com/",
"token_type"=>"Bearer"}
Отлично, токен рабочий. Но "expires_in"=>3599 означает, что access_token протухнет через 1 час.
Делаю новый запрос, чтобы обновить его:
# ruby code:
request_params = {
client_id: 'XXXXX.apps.googleusercontent.com',
client_secret: 'XXXX',
grant_type: 'refresh_token',
refresh_token: '1//0c...',
}
res = Net::HTTP.post_form(URI.parse(url), request_params)
И получаю вот такой http-код: 307 Temporary Redirect с location заголовком в виде ссылки снова на гугл:
https://accounts.google.com/signin/oauth?access_type=offline",
&client_id
&nonce=XXXX
&prompt=consent
&redirect_uri=http://localhost:3000/api/oauth/gmail/callback
&response_type=code
&scope=https://mail.google.com/
&state=XXXXX
&o2v=2
&as=XXXX
Получается, что пользователь веб-сервиса, который я разрабатываю, 1 раз предоставив через OAuth доступ к своей почте, должен будет через час предоставлять еще раз, а через час еще? Почему?
Может ли быть причиной, что гугл еще не провалидировал домен? (я отправлял запрос более месяца назад):

?