El usuario hace clic en «Iniciar sesión», llega a la página del proveedor y vuelve a Rails. El siguiente paso aún puede fallar porque abre una conexión nueva desde el servidor de Rails.

browser → provider authorization page → browser callback to Rails
Rails   → provider token endpoint → Rails

El navegador sigue la redirección de autorización con su propia configuración de red. Rails realiza el intercambio de token por el canal posterior con el cliente HTTP que elige la estrategia de OmniAuth instalada. Un proceso que se ejecuta detrás de un proxy corporativo necesita esa ruta en sus peticiones al proveedor.

OAuth 1.0 también tiene un paso de token de solicitud en el servidor antes de que el usuario autorice el acceso. El flujo de código de autorización de OAuth 2.0 tiene su propio intercambio de token después de la devolución de llamada. La secuencia exacta depende de la estrategia, pero el navegador y el servidor de aplicaciones siguen siendo puntos de partida distintos.

Localice la configuración del cliente

Siga la estrategia hasta el cliente HTTP que envía su token y las peticiones a la API del proveedor. Use la opción de proxy documentada de ese cliente. Algunas estrategias pasan las opciones del cliente a una biblioteca OAuth; otras configuran una conexión HTTP por debajo. Una opción aceptada por una estrategia no es automáticamente una opción compartida de OmniAuth.

Deje que las URL de autorización, token y devolución de llamada del proveedor describan sus servicios reales. El proxy de salida es un ajuste de transporte para llegar al proveedor, no una dirección de devolución de llamada sustituta ni un campo que se añada a los parámetros de la petición OAuth.

Al rastrear un inicio de sesión, marque el último paso completado. Una página de inicio de sesión del proveedor mostrada demuestra que la ruta del navegador funcionó. Una devolución de llamada recibida por Rails demuestra que el navegador volvió. La petición de token posterior es el punto donde inspeccionar una conexión de proxy, un desafío o una respuesta del proveedor desde el proceso de Rails.

Artículos relacionados