Problema con la autenticación de Google debido a la instalación de bundle

Creo que esto es un error, pero no entiendo cómo podría ser el primero en quejarme y las autenticaciones de Google funcionan en Meta. . .

Tengo varios sitios que usan la autenticación de Google configurada en variables de entorno en el archivo YML. Han funcionado durante años. Uno dejó de funcionar hoy, pero otros dos todavía funcionaban. Ejecuté actualizaciones en esos sitios y ahora todos devuelven este mensaje:

Lo sentimos, hubo un error al autorizar su cuenta. Por favor, inténtelo de nuevo.

Cuando el primero dejó de funcionar, pensé que podría ser un problema del lado de Google, pero las URL correctas todavía están allí.

No sé qué podría ser google-protobuf, ¿podría estar relacionado? Build(deps): Bump google-protobuf from 4.28.3 to 4.29.0 (#29969) · discourse/discourse@996f993 · GitHub (EDITAR: No. No puede: “Protobuf.dev usa cookies de Google para ofrecer y mejorar la calidad de sus servicios y analizar el tráfico”)

EDITAR: Bueno, los registros dicen “(google_oauth2) Fallo de autenticación! authenticity_error: OmniAuth::AuthenticityError, Forbidden”, así que eso suena a que a Google no le gustan mis credenciales.

Estas son las mismas credenciales que usan los otros sitios y que estos sitios estaban usando antes de la última actualización. Veo que los valores esperados están en /var/www/discourse/config/discourse.conf y en SiteSettings en Rails.

Si los configuras en la Configuración del sitio en lugar de a través de ENV, ¿se comporta de manera diferente?

¿Puedes publicar el traceback de /logs?

Intentaré editar discourse.conf y configurar a través de la configuración del sitio

Mensaje (4 copias reportadas)

(google_oauth2) Fallo de autenticación! authenticity_error: OmniAuth::AuthenticityError, Forbidden

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:134:in `block in error'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:134:in `error'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:163:in `log'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:540:in `fail!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:261:in `rescue in request_call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:233:in `request_call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:193:in `call!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/builder.rb:44:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/conditional_get.rb:40:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/head.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:399:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/session/abstract/id.rb:266:in `context'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/session/abstract/id.rb:260:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/cookies.rb:704:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/callbacks.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/logster-2.20.0/lib/logster/middleware/reporter.rb:40:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/rack/logger.rb:41:in `call_app'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/rack/logger.rb:29:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/request_id.rb:33:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/method_override.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/executor.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/sendfile.rb:110:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:360:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/engine.rb:535:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:74:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:58:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:58:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: looks.right.to.me.com

No es obvio que haya más información con el registro detallado.

Estoy reconstruyendo uno de los sitios ahora por una razón no relacionada.

OMG. Acabo de ejecutar otra actualización y está funcionando. :person_shrugging:

Y luego actualicé el otro sitio y también está funcionando. No veo nada en los commits ni en mis cosas que pueda explicar nada de esto. Normalmente puedo al menos demostrar que soy la causa del problema.

Suspiro. Y ahora nada ha cambiado y lo que funcionó ayer por la tarde cuando lo “arreglé” reconstruyendo ambos sitios ahora me da

Lo sentimos, hubo un error al autorizar su cuenta. Por favor, inténtelo de nuevo.

para ambos.

Lo que sí cambió es que entré en ambos contenedores y edité /var/www/discourse/plugins/discourse-data-explorer/plugins.rb e hice un sv restart unicorn.

Entonces, ¿podría reiniciar el unicorn de alguna manera causar un problema? Eso no tiene sentido. No quiero reiniciar los contenedores porque ambos están realizando importaciones de larga duración durante las próximas 30-40 horas.

Esto podría ser una pista. Por cada uno de los errores mencionados, también hay uno de estos Attack prevented by OmniAuth::AuthenticityTokenProtection.

Message (8 copies reported)

Attack prevented by OmniAuth::AuthenticityTokenProtection

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/authenticity_token_protection.rb:26:in `deny'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-protection-3.2.0/lib/rack/protection/base.rb:57:in `react'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/authenticity_token_protection.rb:18:in `call!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/authenticity_token_protection.rb:11:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:240:in `request_call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:193:in `call!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/strategy.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/omniauth-2.1.2/lib/omniauth/builder.rb:44:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/conditional_get.rb:40:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/head.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:399:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/session/abstract/id.rb:266:in `context'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/session/abstract/id.rb:260:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/cookies.rb:704:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/callbacks.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/logster-2.20.0/lib/logster/middleware/reporter.rb:40:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/rack/logger.rb:41:in `call_app'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/rack/logger.rb:29:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/request_id.rb:33:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/method_override.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/executor.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/sendfile.rb:110:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:360:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/engine.rb:535:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:74:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:58:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.10/lib/rack/urlmap.rb:58:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: six.imports.literatehosting.com
1 me gusta

¡Sin duda!

No toco esta parte de la pila, así que no tengo ni idea… excepto…

¿Cómo tienes instalada esta versión? La versión a la que Discourse está bloqueado es la 1.9.2.

Es posible que se trate de una incompatibilidad. ¿Estás haciendo algo… atípico…?

3 Me gusta

¡Guau! ¡Te diste cuenta de la versión!

¡Eso es todo! (quizás)

Hice una actualización de apt para instalar algunas cosas (vim pero especialmente tiny_tds para la importación. Así que tal vez algo que actualicé forzó una actualización de omniauth.

No. Eso no es. Eliminé el Gemfile.lock, así que cuando hice el bundle install, ¿se actualizó omniauth?

Así que tal vez, en lugar de ser una molestia, realmente podría ayudar a encontrar un problema con el nuevo omniauth.

Veré si puedo replicarlo, tal vez simplemente actualizando omniauth. ¿Quizás solo eliminar el Gemfile lock y hacer un bundle?

Oh. Quizás por eso establecer IMPORT=1 es más importante de lo que pensaba.

Editar: sí. Definitivamente debe ser sobre hacer un bundle install para agregar el tiny_tds para la importación. A menudo no uso IMPORT=1 porque causa otros problemas. Intentaré confirmar que es la actualización de Omni auth la que está causando el problema, pero parece muy probable.

1 me gusta

Tan pronto como lo hiciste, todo esto dejó de ser compatible. Las actualizaciones de versiones principales de gem son algo que necesita ser probado, no me sorprende que estés teniendo problemas.

(Según entiendo) Cuando hacemos importaciones, hacemos lo necesario para que los datos estén en su lugar, luego hacemos una copia de seguridad y la restauramos en un sitio limpio.

Si todo lo demás es igual, intentaría eso primero.

¡Sí! ¡Gracias por notar esa versión!

No estoy muy seguro de cómo instalar el tiny tds sin aumentar la versión (quizás el IMPORT=1 lo haga), pero al menos ahora tengo una explicación. Y esto explica por qué construir un nuevo contenedor lo soluciona.

Muchas gracias por darte cuenta. Me estaba volviendo loco.

Quizás la versión ‘be’ tenga parámetros diferentes o algo así, por lo que simplemente no está recibiendo la configuración.

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.