我正在使用带有Rail 5.1 API的rack-cors gem .
根据文档我有以下初始化程序:
配置/初始化/ cors.rb
module Api
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins ['http://localhost:4200','https://app.mydomain.com/']
resource '*',
headers: :any,
:expose => ['access-token', 'expiry', 'token-type', 'uid', 'client'],
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
end
但是,这意味着当部署到 生产环境 时,我的api将接受来自任何 localhost:4200
来源的请求 .
如何将这些设置分开,以便不同的环境可以具有不同的允许来源?
1 回答
有几种不同的选择 . 一种是使用
secrets.yml
文件 . 在那里你可以为每个环境定义不同的值,让我们说:然后在配置文件中即可
另一个选项(取自评论)是使用环境文件,例如:
/development.rb
然后在
cors.rb
初始化程序中,您可以执行以下操作:(因为初始化程序将在环境配置文件之后调用,这应该可行) .