Facebook omniauth 登录上的多个 Rails 应用路由问题
Trouble with Multiple Rails app routing on Facebook omniauth login
我目前正在维护一个 Rails 项目,该项目需要将其 Passenger Rack Middleware 转换为 Unicorn。我遇到了一个问题,即 Unicorn 似乎不太支持子域,因此我有如下解决方法。
require_relative '../lib/route_scoper'
MyProject::Application.routes.draw do
scope RouteScoper.root do
get "pages/welcome"
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }
root to: "pages#welcome"
resources :categories, only: [:index, :show]
resources :counties, only: [:index], defaults: { format: :json }
resources :products, only: [:show] do
resources :votes, only: [:create]
end
resources :tickets, only: [:new, :create]
end
end
我已经根据这里的文章做了一个解决方法
Multiple Rails 4 app using nginx + unicorn
一切正常,除了我们的 Facebook 登录似乎有路由问题。
Started GET "/my_project"
Processing by Devise::CasSessionsController#service as HTML
Redirected to http://events.staging.mainsite/users/auth/facebook
Filter chain halted as :sync_fb_user rendered or redirected
Completed 302 Found in 49.8ms (ActiveRecord: 0.0ms)
Rails项目在一个域名下
http://events.staging.mainsite/my_project
它总是将我重定向到 http://events.staging.mainsite/users/auth/facebook
页面并显示错误消息 404 未找到。
它用于在 URL 处进行路由,如以下旧版本
Redirected to /my_project/users/auth/facebook
不确定我是否可以覆盖 omniauth 路径来解决这个问题,或者只是修改 route.rb
以指向正确的登录路径,感谢您的帮助。
好吧,我刚刚弄明白了,我必须为我的设计添加一个路径
然后将它移到 RouteScoper 之外。
devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }, path: "#{RouteScoper.root}/users"
我目前正在维护一个 Rails 项目,该项目需要将其 Passenger Rack Middleware 转换为 Unicorn。我遇到了一个问题,即 Unicorn 似乎不太支持子域,因此我有如下解决方法。
require_relative '../lib/route_scoper'
MyProject::Application.routes.draw do
scope RouteScoper.root do
get "pages/welcome"
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }
root to: "pages#welcome"
resources :categories, only: [:index, :show]
resources :counties, only: [:index], defaults: { format: :json }
resources :products, only: [:show] do
resources :votes, only: [:create]
end
resources :tickets, only: [:new, :create]
end
end
我已经根据这里的文章做了一个解决方法
Multiple Rails 4 app using nginx + unicorn
一切正常,除了我们的 Facebook 登录似乎有路由问题。
Started GET "/my_project"
Processing by Devise::CasSessionsController#service as HTML
Redirected to http://events.staging.mainsite/users/auth/facebook
Filter chain halted as :sync_fb_user rendered or redirected
Completed 302 Found in 49.8ms (ActiveRecord: 0.0ms)
Rails项目在一个域名下
http://events.staging.mainsite/my_project
它总是将我重定向到 http://events.staging.mainsite/users/auth/facebook
页面并显示错误消息 404 未找到。
它用于在 URL 处进行路由,如以下旧版本
Redirected to /my_project/users/auth/facebook
不确定我是否可以覆盖 omniauth 路径来解决这个问题,或者只是修改 route.rb
以指向正确的登录路径,感谢您的帮助。
好吧,我刚刚弄明白了,我必须为我的设计添加一个路径 然后将它移到 RouteScoper 之外。
devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }, path: "#{RouteScoper.root}/users"