0
我正在使用Rails 4和Devise对用户进行身份验证。一旦用户登录,他们将被重定向到一个sinatra应用程序。我需要保护该页面的路由免受未签名用户的影响。保护未登录用户的路由
所以我需要防止用户访问,如果他们没有在签署是路由/ kibana
这里是我的路线文件:
devise_for :user
root 'pages#home'
mount Kibana::Sinatra::Web => '/kibana', :trailing_slash => true
任何帮助非常感谢,谢谢。这里
编辑是我的ApplicationController文件
protect_from_forgery
before_filter :check_user
private
def check_user
if request.fullpath =~ /kibana/ && !user_signed_in?
authenticate :user do
end
end
end
然而,没有结果,我需要。当我访问localhost:3000时,它将我重定向到用户登录,并提示我需要登录,但是当我访问/ kibana /时,它只是显示它而不必登录。
我必须使用控制器来保护路线吗? – 2014-10-29 17:48:50
'routes.rb'只给出应用程序路由的定义。您无权访问此处的请求。 – blelump 2014-10-29 17:53:50
我明白了。我尝试了你的解决方案,但是我仍然可以访问/ kibana /而不必登录。 – 2014-10-29 18:06:51