我有一个Rails应用程序,我的用户可以通过twitter登录。一切都很好,直到现在。当用户已经拥有一个账户时,他们可以正确登录。问题出在新用户身上。当他们尝试注册Twitter时,他们被重定向到一个错误的网址。Rails:twitter omniauth重定向到生产中的localhost
的问题可能来自Omniauth回调,但我不能找到它...
这里是我的配置:
应用程序/控制器/ omniauth_callbacks_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
app/models/user.rb
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帐户时,用户很好地重定向到:http://localhost:3000/users/sign_up,但在生产中,如果用户注册,他将重定向到http://localhost/users/sign_up显然是一个问题;
任何想法?我找不到有什么问题,我的回拨控制器中的一切似乎都没问题。
下的“回调网址锁定”值。这是一个很宽泛的问题,有点不清楚,因为这样会导致猜测。你说“一切都很好,直到现在”,但不要说改变了什么。你能回复吗?如果是这样,问题就消失了吗?导致问题的原因是什么改变了?你做了一个改变然后测试,或者做一堆改变然后测试? –