2011-01-30 10 views
5

sto sto usando OAuth per consentire il mio utente a OAuth con Hunch, sulla mia pagina web Ho un pulsante per consentire all'utente di andare a Hunch e inserire i propri datiLavorare con pitone OAuth

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

Come può Chiamo un metodo qui piuttosto che un gestore? come è attualmente chiamata a questo:

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) 

ma quando stampo l'url2 solo stampe/presentimento? Spero che abbia senso.

Dovrebbe inoltre questo auth_token_key = self.request.get('auth_token_key') ottenere informazioni dall'URL a cui l'utente viene indirizzato dopo aver immesso le proprie credenziali?

+3

Da dove proviene "url2"? Non è menzionato da nessuna parte nel tuo codice. –

+0

hai provato: http://gdatatips.blogspot.com/2009/04/oauth-in-google-app-engine.html – jfs

+0

@Nick Johnson mi dispiace originariamente il mio codice conteneva url2 = request.get (url) ma questo restituisce semplicemente/hunch – keith

risposta

0

Si prega di leggere la documentazione per Hunch OAuth.

Invece di intercettare il modulo sul backend, inviare l'utente direttamente al

http://hunch.com/authorize/v1/?app_id=12345 (fornire il proprio APP_ID ed un successivo parametro opzionale).

Se l'utente autorizza l'applicazione, si verrà reindirizzati alla redirect_url registrato per la vostra applicazione insieme ad un auth_token_key. Ad esempio, un app con un redirect_url di http://your-domain.com/authorized/ verrà reindirizzato alla

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

A questo punto è possibile scambiare l'auth_token_key per un auth_token.

Il Hunch sample app on Github ha un esempio di come questo dovrebbe essere fatto. La funzione authorize genera una pagina che chiede all'utente di connettersi a Hunch e la funzione authorized scambia lo auth_token_key per un auth_token.

0

Quando GAE (utilizzando OpenId) accede a un utente, si affida alla pagina /_ah/login_required.

Per consentire a un utente di immettere le proprie credenziali, è necessario creare una pagina contenente collegamenti per accedere con i diversi provider che si desidera utilizzare. È quindi necessario sovrascrivere la mappatura /_ah/login_required nel file di mappatura url per utilizzare la propria pagina di accesso personalizzata anziché quella predefinita.

This is a very good tutorial I used for this.

Google now offers their own official tutorial.