Ruby on rails Rails:twitter omniauth重定向到生产中的本地主机

Ruby on rails Rails:twitter omniauth重定向到生产中的本地主机,ruby-on-rails,ruby,twitter,omniauth,Ruby On Rails,Ruby,Twitter,Omniauth,我有一个rails应用程序,我的用户可以通过twitter登录。直到现在一切都很顺利。当用户已经拥有帐户时,他们可以正确登录。问题在于新用户。当他们尝试注册twitter时,他们会被重定向到错误的url 问题可能来自Omniauth回调,但我找不到它 这是我的配置: app/controllers/omniauth\u callbacks\u controller.rb class OmniauthCallbacksController < Devise::OmniauthCallback

我有一个rails应用程序,我的用户可以通过twitter登录。直到现在一切都很顺利。当用户已经拥有帐户时,他们可以正确登录。问题在于新用户。当他们尝试注册twitter时,他们会被重定向到错误的url

问题可能来自Omniauth回调,但我找不到它

这是我的配置:

app/controllers/omniauth\u callbacks\u controller.rb

class OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def all
    user = User.from_omniauth(request.env["omniauth.auth"])

    if user.persisted?
      flash.notice = "Signed in!"
      sign_in_and_redirect user

    else
      session["devise.user_attributes"] = user.attributes
      redirect_to new_user_registration_url
    end

  end
  alias_method :twitter, :all
end
  def self.from_omniauth(auth)
    user = find_or_initialize_by(provider: auth.provider, uid: auth.uid)
    user.name  = auth.info.nickname
    user.image = auth["info"]["image"].sub("_normal", "")

    user.save
    user
  end

  def self.new_with_session(params, session)
    if session["devise.user_attributes"]
      new(session["devise.user_attributes"]) do |user|
        user.attributes = params
        user.valid?
      end
    else
      super
    end
  end
好吧,正如我所说,在开发中,它工作得很好,当我尝试注册一个twitter帐户时,用户很好地被重定向到:但在生产中,如果用户注册,他被重定向到wich显然是一个问题


有什么想法吗?我找不到哪里出了问题,我的回拨控制器似乎一切正常。

很可能您将回拨参数发送到服务器时出错,或者您锁定了URL


检查并查看应用程序设置下“回调URL”和“回调URL锁定”的值

不,所有设置都正确,我对这一点非常困惑TBH您的请求令牌调用请求和响应是什么样子的?特别是请求中的oauth_回调和响应体中确认的oauth_回调。这是一个广泛的问题,有些不清楚,因此会导致猜测。你说“到现在为止一切都很顺利”,但不要说发生了什么变化。你能回复吗?如果是这样,问题是否会消失?是什么改变了问题的起因?您是先做一个更改然后进行测试,还是先做一系列更改然后进行测试?