Pregunta

Estoy tratando de construir una nueva carriles 3 aplicación desde cero utilizando OmniAuth. Actualmente sólo tengo una aplicación completamente vacío, donde he añadido a la OmniAuth Gemfile, y añadí un omniauth.rb en config / inicializadores que es similar al siguiente:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'APP_ID', 'APP_SECRET'
end

(Salvo con el ID de la aplicación correcta y secreto en lugar de los marcadores de posición por supuesto.)

Esto parece funcionar cuando se ejecuta desde mi máquina de desarrollo utilizando WEBrick, sin embargo Facebook da un error ya localhost: 3000 no se registra como una aplicación. Así que lo cargue en el servidor de producción para la prueba. Aquí la solicitud de derivación parece la capa de rejilla por completo y termina en los carriles que arroja un RoutingError ya que no hay ruta llamada / auth / facebook definido en routes.rb.

El servidor ejecuta Apache 2.2, rubí 1.8.7, 3.0.1 carriles, rack de 1,2 y el pasajero 3.0.0. ¿Hay algo obvio que me falta?

Por cierto, la aplicación se instala en un sub-url, es decir, http://www.mydomain.net/myapp

¿Fue útil?

Solución

Lo encontré a mí mismo:

Se ha cambiado el código para:

Rails.application.config.middleware.use OmniAuth::Builder do
  configure do |config|
    config.path_prefix = '/myapp/auth' if RAILS_ENV == 'production'
  end

  provider :facebook, 'APP_ID', 'APP_SECRET'
end

Ahora funciona como un encanto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top