2011-01-30 142 views
5

我正在使用OAuth,讓我的用戶的OAuth與Hunch的工作,在我的網頁我有一個按鈕,允許用戶去預感,並輸入他們的詳細信息使用OAuth蟒蛇

<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它只是打印/預感?我希望這是有道理的。

此外auth_token_key = self.request.get('auth_token_key')還應該從用戶輸入其憑據後指向的url中獲取信息?

+3

'url2'從哪裏來?這在代碼中沒有提及。 – 2011-01-30 23:14:00

回答

0

請閱讀Hunch OAuth的文檔。

而不是攔截在後端的形式,直接將用戶

http://hunch.com/authorize/v1/?app_id=12345(提供自己的APP_ID和一個可選的下一個參數)。

如果用戶授權您的應用程序,他們將被重定向到與auth_token_key一起爲您的應用程序註冊的redirect_url。例如,用一個http://your-domain.com/authorized/redirect_url應用程序將被重定向到

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

在這一點上,你可以爲auth_token交換auth_token_key

Hunch sample app on Github有一個應該如何做的例子。 authorize函數生成一個頁面,要求用戶進行Hunch連接,並且authorized函數將auth_token_key作爲auth_token進行交換。