gpt4 book ai didi

ruby-on-rails - Rails 5.1 CORS - 如何为不同环境设置不同来源

转载 作者:行者123 更新时间:2023-12-04 05:24:16 25 4
gpt4 key购买 nike

我正在使用带有 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 的请求。起源。

如何将这些设置分开,以便不同的环境可以有不同的允许来源?

最佳答案

有几种不同的选择。一是用secrets.yml文件。您可以在那里为每个环境定义不同的值,例如:

development:
allowed_origins:
- http://localhost:4200

production:
allowed_origins:
- http://productionurl1.com
- http://productionurl2.com

然后在你的配置文件中你可以做
module Api
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins Rails.application.secrets.allowed_origins
end
end
end

另一种选择(取自评论)是使用环境文件,例如:

发展.rb
config.allowed_cors_origins = ["http://localhost:4200"]

然后在 cors.rb你可以做的初始化程序:
Rails.application.config.allowed_cors_origins 

(因为初始化程序将在环境配置文件之后被调用,这应该可以工作)。

关于ruby-on-rails - Rails 5.1 CORS - 如何为不同环境设置不同来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49985642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com