设计在Rails中安装的sinatra app的身份验证

时间:2012-03-16 03:45:33

标签: ruby-on-rails devise sinatra rack

我正在使用 -

  • Rails 3.2.2
  • Ruby 1.9.3
  • Devise 2.0.4

我的路线文件如下:

Foo::Application.routes.draw do
  devise_for :admins

  root :to => "home#index"
  authenticate :admin do
    mount Simple::App, at: '/simple'
  end 
end

/ simple下的访问需要进行身份验证。

但是,如果没有登录,访问/ simple / *将重定向到/ simple / admin / sign_in而不是/ admin / sign_in,这会创建一个重定向循环。

我是否需要创建自定义failure_app来纠正此行为?

谢谢!

1 个答案:

答案 0 :(得分:8)

 Foo::Application.routes.draw do
   devise_for(:admins)

   root(to: 'home#index')

   match('/simple/admins/sign_in' => redirect('/admins/sign_in'))
   authenticate(:admin) do
     mount(Simple::App, at: 'simple')
   end 
 end