当我们配置Devise时,我们将config / initializers / devise.rb放入这样的内容:
config.omniauth :google_oauth2, "[client_id].apps.googleusercontent.com", "[client_secret]"
我很好奇如何在应用程序中使用此信息(client_id和client_secret)?
例如,
flow = Google::APIClient::InstalledAppFlow.new(
:client_id => client_secrets.client_id,
:client_secret => client_secrets.client_secret,
:scope => [YOUTUBE_READONLY_SCOPE]
)
我想从Devise获取此信息而不是硬编码。
答案 0 :(得分:1)
您可以在名为client_id
的{{1}}文件中添加client_secret
和yml
(例如),在google.yml
中可以添加以下内容:< / p>
devise.rb
如果您想在初始化程序之外使用配置,那么同样如此。只需加载yml并使用其内容。
在yml中,您可以为每个环境(开发,生产等)提供不同的密钥。只要确保你正确加载它。
config_google = YAML.load_file("#{Rails.root}/config/google.yml")
config.omniauth :google_oauth2, config_google["client_id"], config_google["client_secret"]