ruby-on-rails - 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/”开始的所有其他路径都应该经过身份验证。请任何线索,谢谢。
解决方案
如果您只想排除“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
有关机架的更多信息,您可以参考此。
推荐阅读
- jsp - 在 jsf ui 中交换 2 个字符串值
- vue.js - 在 Vue.js 中,如何获取输入以显示与模型不同的内容?
- java - 从 .txt 文件中读取数据并创建对象数组
- php - 无法使用自定义 php 函数上传文件
- java - jsf/xhtml 页面被多次调用
- node.js - 如何使用节点 js 发布图像
- java - 如何在每个端点调用上验证令牌,除了使用在 Tomcat 上运行的 javax.ws.rs 的一个?
- powershell - 使用 PowerShell 根据前 n 个字符删除重复项
- python - 从 sparse.coo_matrix 中采样 n 个零
- python-3.x - 如何将单个字典中的值与具有多个值的键进行比较