secret google cliente auth python google-api oauth-2.0 google-api-python-client

python - cliente - oauth login google



Ejemplo de lĂ­nea de comando de Google OAuth2 (4)

En OAuth 2.0, el parámetro redirect_uri generalmente se registra con el proveedor. El proveedor también debe aplicar https-only redirect_uri.

Debe registrar el redirect_uri con Google aquí: https://code.google.com/apis/console/?pli=1#access

Google tiene un ejemplo de un cliente OAuth2 aquí

Soy completamente nuevo en OAuth2 y me gustaría que este ejemplo funcione antes de moverme para integrar OAuth2 con mi aplicación. Lo que he hecho es lo siguiente:

  1. Registre una aplicación de prueba
  2. Obtenga Client ID y Client Secret
  3. Configure esos valores en client_secrets.json
  4. Ejecute la aplicación de prueba: python moderator.py

La aplicación abre un navegador, donde puedo (como usuario) autorizar a la aplicación para acceder a mi cuenta. Pero Google se está quejando así (400 Bad Request):

Error: redirect_uri_mismatch The redirect URI in the request: http://localhost:8080/ did not match a registered redirect URI Learn more Request Details from_login=1 scope=https://www.googleapis.com/auth/moderator response_type=code access_type=offline redirect_uri=http://localhost:8080/ approval_prompt=auto as=-xxxxxxxxxxxxx pli=1 client_id=xxxxxxxxxxx.apps.googleusercontent.com authuser=0 hl=en

Supongo que el servidor local: 8080 proviene de un servidor web interno iniciado por moderator.py. Mi pregunta es: ¿Alguien ha tenido este ejemplo para trabajar? ¿Qué otros componentes necesito? (Configuración de Apache, DNS, ...)

Estoy muy confundido con OAuth2 y cualquier ayuda sería muy apreciada.


¿Tal vez intente registrar su IP externa con Google (puede requerir algún puerto en su enrutador)? Si esto falla, tal vez podría usar el SimpleServer de Python, registrar su IP y obtener este servidor para manejar la redirección.


Su redirect_uri está configurado en '' http: // localhost: 8080 / '' porque pasa un parámetro de indicadores predeterminado (no sé cómo describirlo) a run_flow (flujo, almacenamiento, indicadores)

si nos fijamos en la función define for run_flow (), encontrará esto:

It presumes it is run from a command-line application and supports the following flags: ``--auth_host_name`` (string, default: ``localhost``) Host name to use when running a local web server to handle redirects during OAuth authorization. ``--auth_host_port`` (integer, default: ``[8080, 8090]``) Port to use when running a local web server to handle redirects during OAuth authorization. Repeat this option to specify a list of values. ``--[no]auth_local_webserver`` (boolean, default: ``True``) Run a local web server to handle redirects during OAuth authorization.


En primer lugar, lo siento si mi respuesta no es muy precisa, porque también soy muy nuevo en OAuth (e incluso en Python) ... y también lo siento si llegó demasiado tarde, generalmente no accedo aquí.

Has intentado usar esto (funcionó para mí): REDIRECT_URI = ''urna: ietf: wg: oauth: 2.0: oob''

Comprueba esto: https://developers.google.com/accounts/docs/OAuth2InstalledApp#choosingredirecturi

Aquí tengo un código con un flujo completo de OAuth funcionando.