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 доступ к своей почте, должен будет через час предоставлять еще раз, а через час еще? Почему?

Может ли быть причиной, что гугл еще не провалидировал домен? (я отправлял запрос более месяца назад):

not_verified

?


Ответы (0 шт):