需要基于国家/地区的支票的追逐解决方案。仅允许根据访问者所在国家/地区访问Rails应用程序。
我已经实现了以下代码:
allowed_countries: ['US', 'FR']
和
def check_country
country = GeoIP::Country.new(APP_CONFIG['geocountry'])
country_result = country.look_up(request.remote_ip) if Rails.env.production?
country_result = country.look_up("your_hardcoded_ip_here") if Rails.env.development?
@country_code = country_result[:country_code]
if APP_CONFIG["allowed_countries"].include?(@country_code)
raise("accepted country")
else
raise("failed country")
end
end
完美无瑕地工作(你需要geoip数据库,这是支付搜索maxmind geoip)
但是
我在之前的过滤器中,需要一个好的缓存解决方案,因此不会在每次请求时调用
有什么想法吗?