【问题标题】:Oauth 2 "redirect_uri_mismatch: { "error" : "redirect_uri_mismatch" }" in railsOauth 2“redirect_uri_mismatch:{“error”:“redirect_uri_mismatch”}”在rails中
【发布时间】:2016-01-26 01:04:52
【问题描述】:

我正在使用 oauth2 gem 进行谷歌登录身份验证。我的代码看起来像

omniauth.rb

OmniAuth.config.logger = Rails.logger
require "omniauth-google-oauth2"
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, 'secret-client-id', 'secret-number', {client_options: {ssl: {ca_file: Rails.root.join("cacert.pem").to_s}}}
end

我的 routes.rb

  get 'auth/:provider/callback', to: 'sessions#create'
  get 'auth/failure', to: redirect('/')

我的观点

 <%= link_to "Sign in with Google", "/auth/google_oauth2", id: "sign_in" %>

我在这个页面之后得到这个 URL

我哪里出错了?

【问题讨论】:

    标签: ruby-on-rails ruby oauth


    【解决方案1】:

    尝试将令牌添加到omniauth 初始化程序:

    Rails.application.config.middleware.use OmniAuth::Builder do
      provider :google_oauth2, "id", "secret", {
        client_options: {ssl: {ca_file: Rails.root.join("cacert.pem").to_s}},
        scope: 'email profile',
        access_type: 'online',
        setup: (lambda do |env|
          request = Rack::Request.new(env)
          env['omniauth.strategy'].options['token_params'] = {:redirect_uri => 'http://.../auth/google_oauth2/callback'}
        end)
    }
    end
    

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 2014-02-09
      • 2015-04-03
      • 1970-01-01
      相关资源
      最近更新 更多