首先,背景:我正在编写一个小网络应用程序来为我做一些自定义的谷歌分析报告。
在我的 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.profile
analytics.readonly
在我进行身份验证时查看 URL,我可以看到它只请求前两个权限。如果我手动添加分析权限,它会授予正确的权限。所以,我把问题缩小到
- 我如何将范围传递给
omniauth-google-oauth2
策略,或者 - 该策略如何处理/忽略范围哈希。
此外,我已在 Google API 控制台中仔细检查了我的 OAuth 密钥的 Analytics API 是否已打开。