我正在努力遵循此文档-https://developers.google.com/api-client-library/python/guide/aaa_oauth
我使用这个函数来创建auth-urlstep1_get_authorize_url()
,它工作得很好。我已经成功地编写了回调处理程序并创建了凭据对象。
我该如何重定向到一个继续的url以返回到原始页面,现在凭据已经创建。
我不知道如何在step1_get_authorize_url()
中传递这个参数,这似乎是有意义的。
步骤1/url-1创建登录链接,/oauth2callbackckler接收代码并创建凭证对象;如何重定向回/url-1?
我通过Flow对象的state
参数发现这是可能的。
state = ''.join(random.choice(string.ascii_uppercase + string.digits)
for x in xrange(32))
flow.params['state'] = 'security_token%3D' + state + '%26url%3D' + urllib.quote_plus(self.request.url)
我将安全令牌存储在会话中以进行验证。
https://developers.google.com/accounts/docs/OAuth2WebServer
step1_get_authorize_url()
是流对象的一个方法,该流对象保存重定向URL,并在创建时传递。
flow = client.flow_from_clientsecrets(
secrets_file,
scope='https://www.googleapis.com/auth/analytics.readonly',
redirect_uri='urn:ietf:wg:oauth:2.0:oob')
auth_uri = flow.step1_get_authorize_url()
你可以在这里找到一个完整的例子和解释。本教程提供了一个控制台应用程序,但这个过程与您在使用web应用程序时需要做的类似。