如何为Oauth2传递Google的客户端Python库的重定向网址?

时间:2014-09-09 15:04:17

标签: python-2.7 oauth-2.0 google-api

我试图遵循此文档 - https://developers.google.com/api-client-library/python/guide/aaa_oauth

我使用此函数来创建auth url step1_get_authorize_url(),它可以正常工作。我已成功编写回调处理程序并创建了凭证对象。

如何创建凭据,我如何重定向到继续网址以返回原始页面。

我不知道如何在step1_get_authorize_url()中传递这个参数似乎有意义。

步骤1 / url-1创建登录链接,/ oauth2callbackhandler接收代码并创建凭证对象;如何重定向回/ url-1?

2 个答案:

答案 0 :(得分:0)

我发现可以通过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

答案 1 :(得分:0)

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()

您将找到一个完整的示例和解释here。本教程提供了一个控制台应用程序,但该过程与Web应用程序中您需要执行的操作类似。