rails刷新googleapi的作用域请求



我有一个rails应用程序,带有谷歌api客户端和omniauth-google-oauth2-gems。我想集成谷歌日历。我尝试使用下面的代码进行身份验证,但失败了。

问题是,当我将范围更改为:scope: ['email'],甚至更改为scope: ['hahahaha']时,我会从谷歌得到相同的响应,如下代码所示。玩了一段时间后,我放弃了,等了一段时候,然后再试了一次,得到了一个新的错误响应。我试图更改代码,但这次又遇到了另一个错误。是否有时间限制,或者为什么在更改代码后没有立即更新响应?

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, ENV['GOOGLE_API_KEY'], ENV['GOOGLE_API_SECRET'], {
    scope: ['email, profile, calendar'],
    access_type: 'offline'
  }
end

来自谷歌的错误消息:

错误:范围无效

某些请求的作用域无效。{有效=https://www.googleapis.com/auth/calendar,[无效=配置文件,https://www.googleapis.com/auth/email,]}

根据omniauth-google-oauth2-docs,scope应该是一个具有逗号分隔作用域的字符串。但是您在代码中使用了一个数组。所以scope: "email, profile, calendar"应该起作用。

至于响应随时间的变化,你在Rails应用程序中使用Spring吗?Spring允许您通过在第一次运行时预加载Rails应用程序来更快地加载它。然后,当你再次运行rails时,它会使用这个预装的应用程序。更改应用程序配置后,您必须重新启动应用程序才能使更改生效。如果您只是重新启动rails,它将不起作用,因为Spring仍在内存中运行应用程序。因此,如果你使用Spring,你也必须在更改应用程序配置后重新启动它,就像这样:

spring stop
rails s

相关内容

  • 没有找到相关文章

最新更新