я использую гем с твиттером. При обратном вызове проверьте, существует ли пользователь, и создайте его или отправьте обратно на главную страницу.
Возможно, я делаю что-то не так, но в моем коде обратного вызова request.env ['omniauth.origin'] имеет значение nil .
Мой код довольно прост:
something.html.erb
<%= link_to image_tag("twitter-connect.png"), "/auth/twitter" %>
routes.rb
match "/auth/:provider/callback" => "sessions#create"
sessions_controller.rb
def create
auth = request.env["omniauth.auth"]
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth)
if !user.email
redirect_to confirm_path, :notice => "Add your email!"
else
redirect_to request.env['omniauth.origin'] || root_url, :notice => "Signed in!"
end
end
Если я подниму request.env ['omniauth.origin'] сразу после обратного вызова, я получу объект nil .
Спасибо за вашу помощь!