是否可以使用google oauth2检索刷新令牌

时间:2015-03-12 13:21:29

标签: python-2.7 oauth google-oauth

是否可以从应用程序的Google帐户中检索refresh token

我使用google oauth登录我的网络应用程序。第一次登录时会生成refresh token。但是当出现问题或者程序不接受用户时,已经全部已经生成了refresh token已签名的用户。第二次用户想要登录refresh token时未生成。用户必须首先撤销Web应用程序,然后才能生成新的refresh token

有没有办法检索用户的refresh token?或者甚至更好,从网络应用程序中踢出用户?

这就是我获得refresh token

的方式
        code = request.args.get('code')

        credentials = cls.flow.step2_exchange(code)

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

我正在使用Flask

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。

当用户接受您的申请时,会生成refresh_token。 如果用户稍后返回并且尚未撤消您的应用,则Google将不会生成其他刷新令牌。您可以使用approval_prompt='force'强制用户完成批准提示。

用户可以转到myaccount.google.com>撤消您的申请。连接的应用和服务,选择您的应用程序并撤消。

要撤消应用程序中的用户,您可以调用以下URL: '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_tokenrefresh_token