【问题标题】:Google calendar api, redirect uri mismatch谷歌日历 api,重定向 uri 不匹配
【发布时间】:2015-11-18 06:34:55
【问题描述】:

我试图为我的 ruby​​ 应用程序集成谷歌日历 api,在谷歌开发者控制台中我给了我的重定向 uri

http://localhost:3000

http://localhost:3000/auth/google_oauth2/callback

400. That’s an error.

错误:redirect_uri_mismatch

redirect_uri=http://localhost:9292/

即使我提到了 3000,它也会不断获取端口 9292

我已经关注了这些链接 ruby quickstart from google

【问题讨论】:

  • 你能把你的初始化文件发布到你为谷歌开发者控制台指定customer_keycustomer_secret的地方
  • {"web":{"client_id":"myclientid","auth_uri":"accounts.google.com/o/oauth2/…}}
  • @priya :您可以尝试通过rails s -p 9292 在端口9292 上运行您的服务器并相应地更改谷歌控制台并检查是否适合您?我猜有DNSNAT 问题
  • 在谷歌开发者控制台中添加 http://localhost 删除端口。
  • @DaImTo 再次尝试使用端口 9292 重定向 uri 问题

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 google-calendar-api


【解决方案1】:

我遇到了同样的问题,不幸的是,我在那个愚蠢的问题上浪费了 4 个小时,因为我看到您使用的是 gem "omniauth-google-oauth2" 实际上没有定义范围,您需要添加范围,否则它会一直误导您。我在初始化程序中使用了如下键

Provider :google_oauth2, 'customer_key', 'my_sec' , {:scope => 'email,profile' }

并更新您的gem file,如下所示

gem 'omniauth-oauth2', '~> 1.3.1'

gem "omniauth-google-oauth2"

更新

origin Url -> http://localhost:3000

callback Url-> http://localhost:3000/auth/google_oauth2/callback

routes.rb -> get "auth/:provider/callback", to: 'registration#create_session'

【讨论】:

  • 能否请您提及您在谷歌开发者控制台中提供的重定向 uri
  • 我应该在哪里提到这个 Provider :google_oauth2, 'customer_key', 'my_sec' , {:scope => 'email,profile' }
  • 在您的 config/initializer/omniauth.rb 中。如果尚未创建,则必须创建 omniauth.rb
  • @priya 你明白了吗?我也更新了我的答案
【解决方案2】:

只是对@ImranNaqvi 答案的补充;当我在更改omniauth-oauth2 的版本后运行“捆绑安装”时,终端抱怨我的omniauth-oauth2 被锁定在1.4.0 版。如果发生这种情况,您需要进入 gem.lock 文件(不是 gem 列表)并将 omniauth-oauth2 版本更改为 1.3.1。然后“捆绑安装”。

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多