rails google ruby-on-rails devise ruby-on-rails-5 omniauth omniauth-twitter

ruby-on-rails - google - omniauth rails api



Omniauth-twitter con Rails 5 dejó de funcionar! OAuth:: no autorizado 403 prohibido (7)

Todo funcionaba bien y Omniauth dejó de funcionar repentinamente. No hice ningún cambio de código.

Revisé la configuración de las aplicaciones de Twitter: tengo una URL de devolución de llamada a mi URL de producción principal y la URL de devolución de llamada está bloqueada en No. Todas las claves son correctas.

¿Alguna idea? 🤔

OAuth :: no autorizado

403 Prohibido


Acabo de resolver el problema poniendo https://domain/oauths/callback en la lista de URL de https://domain/oauths/callback de llamada. Asegúrese de habilitar la opción de bloqueo de devolución de llamada.



Es casi seguro que esto está relacionado con este cambio: https://twittercommunity.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342 : el https://twittercommunity.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342 .

Desde el enlace:

En 30 días, comenzaremos a aplicar la lista blanca de manera que cualquier URL que no se agregue a la lista blanca fallará. Esto significa que las URL ya no se pueden anular mediante programación en las llamadas al punto final 112 de oauth / request_token. El parámetro callback_url proporcionado debe coincidir con una de las URL de devolución de llamada en la lista blanca. Si bien generalmente proporcionamos un aviso de más de 30 días para cambios como este, esta línea de tiempo nos permite continuar brindando una experiencia segura para los desarrolladores y nuestros usuarios.

Puede agregar URL de devolución de llamada a su lista blanca en la página de configuración de aplicaciones en apps.twitter.com 488.

Active la configuración "Activar bloqueo de devolución de llamada" para comprobar que solo se aceptan las URL que haya incluido en la lista blanca. Las URL de devolución de llamada se bloquearán automáticamente y la lista blanca se aplicará a partir del 12 de junio. El ajuste "Activar bloqueo de devolución de llamada" se eliminará en esta fecha.

No pude hacer que esto funcionara en desarrollo con 127.0.0.1 así que terminé creando un registro DNS A que apuntaba a 127.0.0.1 (por ejemplo, dev.example.com ) y lo usé en la configuración de la URL de devolución de llamada en https: // apps.twitter.com .


Estoy trabajando en desarrollo no en producción y encontré este problema usando las gemas omniauth y omniauth-twitter. Pero con estos dos URL de devolución de llamada:

http://127.0.0.1:3000 http://localhost:3000/auth/twitter/callback

Se evita el problema. Extraño, ya que el tutorial de RailsApps advierte contra el uso de ''localhost'' en Twitter.


He podido resolverlo (también para el desarrollo) agregando estas URL:

Para la producción:

  • https://mydomain/users/auth/twitter/callback
  • http://mydomain/users/auth/twitter/callback

Para desarrollo:

  • http://localhost:3000/users/auth/twitter/callback

La adición de una segunda URL de devolución de llamada a mysitecom/auth/twitter/callback solucionó el problema (por ahora)

———-

Actualización: Esto resolvió el problema durante unos 10 minutos. Experimentando el mismo problema ahora


Nombre de dominio Unicode. Twitter me da error: formato de nombre de dominio insostenible. Necesito coincidir exactamente con la URL de devolución de llamada, el envío por mi servidor y la URL de devolución de llamada en mi aplicación de Twitter. Solución: config / initialization / twitter.rb

OmniAuth::Strategies::Twitter.class_eval do def callback_url return my_custom_twitter_app_callback_url_string_variable end end