Rumah  >  Soal Jawab  >  teks badan

ruby - rails限制多个IP访问的方法?

对某一个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/'

却不行。哪里不对呢?

黄舟黄舟2713 hari yang lalu567

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-04-21 11:00:01

    Oleh kerana Settings.ip.allow sentiasa mengembalikan String, tetapi sebenarnya, dalam kes kedua, apa yang anda perlukan ialah RegExp, jadi ia tidak sah. Anda boleh cuba menukarnya seperti ini:

    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'
    

    balas
    0
  • Batalbalas