Ruby on rails: 如何从机架中间件身份验证中排除特定路径?

Ruby on rails: how to exclude certain path from rack middleware authentication?

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

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

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

我希望将路径 "home/users/" 排除在身份验证之外。从 "home/" 开始的所有其他路径都应该进行身份验证。 请任何线索,谢谢。

如果您只想排除 "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

机架的更多信息可以参考this