【问题标题】:How do I pass a redirect URL for Google's Client Python Library for Oauth2?如何为 Google 的 Oauth2 客户端 Python 库传递重定向 URL?
【发布时间】:2015-02-14 00:49:10
【问题描述】:

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

我使用此函数创建身份验证 URL step1_get_authorize_url(),它工作正常。我已经成功编写了回调处理程序并创建了凭据对象。

现在凭据已创建,我如何重定向到继续 url 以返回原始页面。

我看不出如何在step1_get_authorize_url() 中传递这个参数,这似乎是有道理的。

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

      【解决方案2】:

      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 应用程序时需要执行的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-28
        • 2020-10-04
        • 2015-07-15
        • 2018-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多