如何从Devise

时间:2018-02-12 09:45:17

标签: ruby-on-rails devise google-oauth2

当我们配置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获取此信息而不是硬编码。

1 个答案:

答案 0 :(得分:1)

您可以在名为client_id的{​​{1}}文件中添加client_secretyml(例如),在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"]