0

首先,背景:我正在编写一个小网络应用程序来为我做一些自定义的谷歌分析报告。

在我的 Gemfile 中:

gem 'omniauth'
gem 'omniauth-google-oauth2'

在我的config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, ENV["GOOGLE_KEY"], ENV["GOOGLE_SECRET"]
    {
      :scope => "userinfo.email,userinfo.profile,analytics.readonly",
      :approval_prompt => "auto"
    }
end

当我进入 google 上的身份验证屏幕时,它只要求我提供权限,而userinfo.email没有.userinfo.profileanalytics.readonly

在我进行身份验证时查看 URL,我可以看到它只请求前两个权限。如果我手动添加分析权限,它会授予正确的权限。所以,我把问题缩小到

  1. 我如何将范围传递给omniauth-google-oauth2策略,或者
  2. 该策略如何处理/忽略范围哈希。

此外,我已在 Google API 控制台中仔细检查了我的 OAuth 密钥的 Analytics API 是否已打开。

4

1 回答 1

0

格式错误的代码,我在ENV["GOOGLE_SECRET"]. 下面是固定代码。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, ENV["GOOGLE_KEY"], ENV["GOOGLE_SECRET"],
    {
      :scope => "userinfo.email,userinfo.profile,analytics.readonly",
      :approval_prompt => "auto"
    }
end
于 2013-03-19T03:38:15.843 回答