2011-01-30 11 views
5

estoy estoy usando OAuth para permitir que mi usuario de OAuth con Hunch, en mi página web que tienen un botón para que el usuario pueda ir a Hunch e introduzca sus datosTrabajar con pitón de OAuth

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

¿Cómo puede Llamo a un método aquí en lugar de un controlador? como está llamando actualmente a esto:

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) 

pero cuando imprimo el url2 solo imprime/¿hunch? Espero que esto tenga sentido.

¿También debería este auth_token_key = self.request.get('auth_token_key') obtener información de la url a la que se dirige al usuario después de haber ingresado sus credenciales?

+3

¿De dónde viene 'url2'? No se menciona en ninguna parte de tu código. –

+0

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

+0

@Nick Johnson lo siento originalmente mi código contenía url2 = request.get (url) pero esto solo devuelve el/presentimiento – keith

Respuesta

0

Por favor, lea la documentación de Hunch OAuth.

En lugar de interceptar la forma en el backend, enviar al usuario directamente a

http://hunch.com/authorize/v1/?app_id=12345 (proporcionando su propia APP_ID y un parámetro próxima opcional).

Si el usuario autoriza su aplicación, será redirigido a la redirect_url registrado para su aplicación junto con una auth_token_key. Por ejemplo, una aplicación con una redirect_url de http://your-domain.com/authorized/ será redirigido a

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

En este punto usted puede intercambiar el auth_token_key para una auth_token.

El Hunch sample app on Github tiene un ejemplo de cómo se debe hacer esto. La función authorize genera una página que le pide al usuario que conecte con Hunch, y la función authorized intercambia el auth_token_key por un auth_token.

0

Cuando GAE (usando OpenId) inicia sesión en un usuario, se basa en la página /_ah/login_required.

Para que un usuario ingrese sus propias credenciales, debe crear una página que contenga enlaces para iniciar sesión con los diferentes proveedores que desea utilizar. A continuación, debe anular la asignación /_ah/login_required en el archivo de correlación de url para usar su propia página de inicio de sesión personalizada en lugar de la predeterminada.

This is a very good tutorial I used for this.

Google now offers their own official tutorial.