如何通過IP地址限制對所有設計控制器的訪問?我試圖只允許來自特定IP地址的用戶查看管理界面/頁面。如何限制通過IP地址訪問所有設計控制器?
我發現了這種方法。在before過濾器中包含一個restrict_access方法。但是,如果我必須在當前使用的所有Devise控制器上覆制此方法,那麼它有點重複。
有沒有更好的方法?
class Admin::SessionsController < Devise::SessionsController
before_filter :restrict_access
# Needed to restrict access to a set of IP's only. We don't want random users trying to access the admin interface
def restrict_access
if Rails.env == 'development' or Rails.env == 'test'
whitelist = ['59.120.201.20', '59.120.201.21'].freeze
else
whitelist = ['59.120.201.20', '59.120.201.21'].freeze
end
unless whitelist.include? request.remote_ip
redirect_to root_path, :notice => 'Access denied!'
end
end
...
非常感謝,這似乎是一個很好的習俗。 – ndbroadbent