是否可以从应用程序的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
答案 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_token
或refresh_token