【发布时间】:2021-10-20 05:38:47
【问题描述】:
我在 rails 中有代码可以像这样从 env 中的域列表中检查 CORS
config.middleware.insert_before 0, Rack::Cors do
domains = ""
if ENV["DOMAIN_CORS"].present? && !ENV["DOMAIN_CORS"].empty?
domains = ENV["DOMAIN_CORS"].split(",").map { |origin| origin.strip }
end
allow do
origins domains
resource "*", headers: :any, methods: [:get, :post, :put, :delete, :options], credentials: true
end
end
我有这样的环境 DOMAIN_CORS = "https://example1.com, https://example2.com"
上面的代码可以很好地检查这两个域的 cors,但是如果我想允许 example.com 的所有子域工作,请在阅读此处的一些帖子后
https://github.com/cyu/rack-cors/issues/30
我需要像这样进行正则表达式检查
(.*?)\.example\.com
我将环境设置为
DOMAIN_CORS = "https://example1.com, https://example2.com, (.*?)\.example\.com, /(.*?)\.example\.com/"
但是所有方法似乎都行不通,所以无论如何我可以在这种情况下将正则表达式字符串放入 env 中吗? .提示
【问题讨论】:
标签: ruby-on-rails regex ruby environment-variables ruby-on-rails-5