【发布时间】:2013-03-18 16:02:23
【问题描述】:
首先,背景:我正在编写一个小网络应用程序来为我做一些自定义的 Google Analytics 报告。
在我的 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 是否已打开。
【问题讨论】:
标签: ruby-on-rails oauth-2.0 omniauth google-oauth