2015-03-12 5 views
2

Возможно ли получить refresh token из учетной записи google для приложения?можно получить токен обновления с помощью google oauth2

Я использую логин google oauth для своего веб-приложения. При первом входе создается refresh token. Но когда что-то пойдет не так или программа не принимает пользователя, но пользователь allready, подписанный в refresh token, уже создан. Второй раз, когда пользователь хочет войти в систему, refresh token не генерируется. пользователь должен сначала отменить веб-приложение до того, как будет создан новый refresh token.

Есть ли способ получить refresh token пользователя? или, может быть, даже лучше, выкинуть пользователя из веб-приложения?

это, как я получаю refresh token:

 code = request.args.get('code') 

     credentials = cls.flow.step2_exchange(code) 

     print 'refresh_token:{}'.format(credentials.refresh_token) 

Я использую флягу

+1

Wild догадка. попробуйте найти что-то называемое утверждение_пропт. Если у вас нет refreshtoken, вы можете заставить его запросить у пользователя новый. они не должны отменять доступ. Опять же, это дикая догадка, что я не программист на python – DaImTo

ответ

0

Ok я нашел ответ.

Когда пользователь принимает ваше приложение, генерируется refresh_token. Если пользователь вернется позже и не отменил ваше приложение, Google не будет генерировать еще один токен обновления. Вы можете использовать approval_prompt='force', чтобы заставить пользователя пройти запрос об утверждении.

Пользователь может отменить ваше приложение, перейдя на myaccount.google.com> Подключенные приложения и службы, выбрав приложение и отменив его.

Чтобы отозвать пользователя в вашем приложении вы можете позвонить по следующему адресу: 'https://accounts.google.com/o/oauth2/revoke?token={token}'

пример:

def revoke(token) 
    url = 'https://accounts.google.com/o/oauth2/revoke?token=%s' % token 
    h = httplib2.Http() 
    return h.request(url, 'GET')[0] 

маркер может быть access_token или refresh_token

+0

см. Http://geek.bluemangointeractive.com/google-oauth-2-enable-your-application-to-access-data-from-a-google-user/ для объяснения о google oauth 2 –

Смежные вопросы