對某一個action的IP的限製方式是,在routes.rb中:
constraints(:ip => Settings.ip.allow) do
post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
end
在settings.yml中:
ip:
allow: '127.0.0.1'
這是可以的.
但是想對多個IP允許訪問,在settings.yml中如下:
ip:
allow: '/127.0.0.1|127.0.0.2/'
卻不行。哪裏不對呢?
黄舟2017-04-21 11:00:01
因為 Settings.ip.allow 總是回傳的是 String,但其實第二種情況下你需要的是一個 RegExp,所以無效。可以試著這麼改:
config/routes.rb:
constraints(:ip => %r{#{Settings.ip.allow}}) do
post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
end
config/settings.rb
ip:
allow: '127.0.0.1|127.0.0.2'