setaccesstype secret refreshtoken google google-api google-oauth url-redirection socialauth social-authentication

google-api - secret - refreshtoken api google



¿Cómo agregar múltiples URI de redireccionamiento para Google OAuth 2? (2)

En realidad es más fácil de lo que piensas, desafortunadamente me tomó un par de horas resolverlo.

¿Cómo puedo agregar varios redirect_uris a mi aplicación?

Normalmente, cuando agrega múltiples enlaces a algo en Google o en otro lugar, lo separa por , o ; pero con Redirect URIs tienes que usar una nueva línea, en realidad no es muy intuitiva. Entonces, cuando presiona el botón Edit Settings , puede agregar al URI y / u Orígenes si tiene un par de enlaces más, separados por líneas nuevas ( enter ).

No hay necesidad de configuraciones de aplicaciones complicadas o nuevas claves.

¿Por qué Google identifica mi aplicación como "Cuenta de servicio predeterminada del proyecto" en lugar de "Mi aplicación Hobby"?

En su segunda pregunta: debe ir a la pestaña "Pantalla de consentimiento" para cambiar la información de su aplicación, como su PRODUCT NAME , HOMEPAGE LOGO , LOGO , etc.

Estoy tratando de hacer que la autenticación de Google OAuth 2 funcione con una aplicación de juguete que estoy ejecutando en mi computadora (en localhost:8080 ) usando Social Auth para Java.

Sin embargo, cuando mi aplicación se conecta a Google para autenticar al usuario, Google responde con esta página de error:

Mi aplicación, llamada "My Hobby App", está configurada en Developer Console como tal:

En los documentos de Google OAuth 2 , se especifica que:

redirect_uri: uno de los valores de redirect_uri enumerados para este proyecto en Developers Console.

Determina a dónde se envía la respuesta. El valor de este parámetro debe coincidir exactamente con uno de los valores enumerados para este proyecto en la Consola de Desarrolladores de Google (incluido el esquema http o https, el caso y el final ''/'').

Tengo un par de preguntas:

  • ¿Cómo puedo agregar varios redirect_uri s a mi aplicación?
  • ¿Por qué Google identifica mi aplicación como "Cuenta de servicio predeterminada del proyecto" en lugar de "Mi aplicación Hobby"?

Esta respuesta puede no ser la respuesta exacta a la pregunta, pero creo que esto podría ayudar a aquellos que están usando Google OAuth por primera vez y se preguntan por qué sus URI múltiples no están siendo reconocidos.

Usamos el URI de redireccionamiento en 2 lugares en el código. La primera vez, mientras busca el código de autenticación y una segunda vez, cuando intercambia este código por un token de acceso.

En los documentos de Google , se menciona claramente que la respuesta a la solicitud del código de autenticación (primera solicitud) se enviará al URI de redireccionamiento. Por lo tanto, si realiza la solicitud desde un punto final A y especifica el URI rediredt como punto final B, Google enviará el código de autenticación al punto extremo B. Esto es claro y funcionó bien sin ningún error.

Llegando a la segunda solicitud, la documentación es algo ambigua. El parámetro redirect_URI se describe a continuación:

redirect_uri: el URI que especifique en la consola de la API, como se describe en Establecer un URI de redireccionamiento.

Aquí es donde cometí un error al entender cómo funciona esto. Siguiendo un enfoque similar a la primera llamada, utilicé un tercer punto final C y pasé este punto final C en el parámetro redirect_URI mientras hacía la segunda llamada. Obtuve un error de discrepancia de URI, aunque mis puntos finales B y C están especificados en la consola API.

El problema es que, a diferencia de en el caso de la primera llamada, la respuesta a la segunda llamada llega al mismo punto final desde donde se realiza la solicitud. Hice una solicitud en Python como a continuación:

r = requests.post(token_endpoint, params)

r tiene la respuesta con el token.

Estaba obteniendo una discrepancia de URI porque, se supone que debo usar el mismo redirect_URI en ambas llamadas.

Por lo tanto, para una sola solicitud de OAuth, necesitamos usar un solo redirect_URI.

Pero entonces, surge la pregunta, ¿por qué se permiten múltiples redirect_URIs en la consola API para una sola aplicación? Estoy asumiendo que si necesitamos hacer múltiples pares de llamadas authCode-token en la misma aplicación, tenemos la posibilidad de usar múltiples redirect_URIs.