首页 > 解决方案 > Ruby on rails:如何从机架中间件身份验证中排除某些路径?

问题描述

我正在尝试使用机架中间件身份验证。我想从身份验证中排除某些路径。是否可以排除某些特定路径?

这将验证所有以 home 开头的路由。

def call(env)
  request = Rack::Request.new(env)
  if request.path =~ /^\/home/
    super
  else
    @app.call(env)
  end
end

我希望从身份验证中排除路径“home/users/”。从“home/”开始的所有其他路径都应该经过身份验证。请任何线索,谢谢。

标签: ruby-on-railsrubyrakebasic-authentication

解决方案


如果您只想排除“home/users/”路径,那么您的中间件应该具有以下结构,

def call(env)
  request = Rack::Request.new(env)
  return @app.call(env) if request.path == "home/users/"
  # your middleware logic of authentication here.
end

有关机架的更多信息,您可以参考


推荐阅读