Google oauth2 funciona con un código de tiempo generado desde Android pero no funciona para el código generado desde JS SDK

Estoy intentando autenticar al usuario usando oauth2 api de Google. Hay 2 plataformas, Android y Web. Para los nuevos usuarios, busco el código de autenticación de una sola vez en el cliente y lo envío al servidor en ambas plataformas. Una vez que el servidor recibe el código, se está recuperando el token de acceso y después de eso, los detalles del usuario. El servidor puede recuperar el token del código de autenticación de una sola vez enviado desde el dispositivo Android, pero está fallando para el código enviado desde Web.

Este es mi fragmento de código en JS para obtener código de autenticación de una sola vez.

gauth2.grantOfflineAccess({ 'scope': 'profile email', 'redirect_uri': 'postmessage' }).then(function(e){ if(!e){ // Error } else{ console.log('Auth code: '+e.code); } }); 

En el servidor, esta es la solicitud POST que estoy haciendo para recuperar el token de un código de tiempo.

 post_data = {'code': one_time_code, 'client_id': settings.GOOGLE_OAUTH2_CLIENT_ID, 'client_secret': settings.GOOGLE_OAUTH2_CLIENT_SECRET, 'grant_type': 'authorization_code'} req = urllib2.Request("https://www.googleapis.com/oauth2/v3/token", data=urllib.urlencode(post_data), headers={'User-Agent': 'Mozilla/5.0'}) req.get_method = lambda: 'POST' res = urllib2.urlopen(req) if res.code == 200: print "response 200 : " else: print "Access Token Validation Return Code: ", res.code 

Esta llamada de servicio web devuelve 200 y token cuando se genera el código de autenticación de Android. Cuando se envía desde la web, el mismo método arroja el siguiente error ..

Error: 400, solicitud no válida; Falta el parámetro 'redirect_uri'

En este caso, no necesito enviar ningún redirect_uri, porque estoy leyendo la respuesta allí mismo. Pero todavía intenté fijar un valor vacío y también intentado fijarlo a un cierto valor que coincida exactamente con uno de los valores en consola de los reveladores de google. En ese caso, todavía estoy recibiendo ..

Error: 400, solicitud no válida; Redirect_uri no coincide.

No puedo conseguir mi cabeza alrededor del hecho de que esta llamada del servicio de la tela está trabajando perfectamente para los códigos androides y no para los códigos de la tela. Tenga en cuenta que los ámbitos son diferentes para la aplicación de Android y la aplicación web. Pero aún así, esto parece ser un error fundamental. Cualquier ayuda sería apreciada.

  • Error en la autenticación SASL de Gtalk XMPP con el mecanismo X-OAUTH2?
  • Cómo verificar el token de ID de Android en el motor de búsqueda de App Engine
  • La huella dactilar que ha especificado ya está siendo utilizada por otro cliente Android OAuth2
  • ¿Cómo puedo verificar los símbolos generados por Android en mi servidor mediante PHP?
  • Cómo registrar usuarios con la cuenta de Google en la aplicación Android
  • Inicia sesión de Google en la aplicación sin agregarla a las cuentas de dispositivos
  • La mejor forma de permitir a los usuarios acceder a la aplicación mediante sus credenciales de Google
  • Obtener nombre de usuario, avatar de google account
  • Desconocido GoogleAuthException al intentar obtener un token de autorización
  • GoogleAuthException: Desconocido (android)
  • ¿Cómo utilizar correctamente Google Plus Iniciar sesión con múltiples actividades?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.