【问题标题】:Working with OAuth python使用 OAuth python
【发布时间】:2011-06-18 05:57:32
【问题描述】:

我正在使用 OAuth 允许我的用户使用 Hunch 进行 OAuth,在我的网页上我有一个按钮允许用户转到 Hunch 并输入他们的详细信息

    <form action="/hunch" method="post" align = "right">
        <div>
            <input type="submit" value="Login using Hunch">
        </div>
    </form>

如何在这里调用方法而不是处理程序?正如它目前所说的那样:

class hunch(webapp.RequestHandler):
    def post(self):
        url = 'http://hunch.com/authorize/v1/?app_id=123&next=/get-recs'
        self.redirect(url)  
        logging.info("url2 = " + url2)

        auth_token_key = self.request.get('auth_token_key')
        logging.info("auth_token_key = " + auth_token_key)

但是当我打印 url2 时它只打印 /hunch?我希望这是有道理的。

这个auth_token_key = self.request.get('auth_token_key') 还应该从用户输入凭据后被定向到的 URL 获取信息吗?

【问题讨论】:

标签: python html google-app-engine oauth


【解决方案1】:

请阅读Hunch OAuth 的文档。

而不是在后端截取表单,直接将用户发送到

http://hunch.com/authorize/v1/?app_id=12345(提供您自己的 app_id 和可选的 next 参数)。

如果用户授权您的应用程序,他们将被重定向到为您的应用程序注册的redirect_url 以及auth_token_key。例如,redirect_urlhttp://your-domain.com/authorized/ 的应用将被重定向到

http://your-domain.com/authorized/?auth_token_key=7a1b2c3&auth_sig=941bc415af782a8d93a83c874922ae1b30e92a70

此时您可以将auth_token_key 换成auth_token

Hunch sample app on Github 有一个应该如何完成的示例。 authorize 函数生成一个页面,要求用户预想连接,authorized 函数将auth_token_key 交换为auth_token

【讨论】:

    【解决方案2】:

    当 GAE(使用 OpenId)登录用户时,它依赖于 /_ah/login_required 页面。

    要让用户输入他们自己的凭据,您应该创建一个页面,其中包含通过您希望使用的不同提供商登录的链接。然后,您必须覆盖 url 映射文件中的 /_ah/login_required 映射,以使用您自己的自定义登录页面而不是默认页面。

    This is a very good tutorial I used for this.

    Google now offers their own official tutorial.

    【讨论】:

      猜你喜欢
      • 2010-11-15
      • 2013-07-11
      • 2017-01-18
      • 2012-06-21
      • 2018-07-06
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多