Я использую Omniauth для входа в Facebook через приложение Rails.Также я пытаюсь реализовать дружественную переадресацию.Я имею в виду, что как только вы войдете в систему через Facebook и зарегистрируетесь через устройство, приложение должно вернуться к предыдущему URL.
Для этой цели я использовал переменную сеанса.Но как только приложение перенаправило на Facebook, все переменные сессии исчезли.
Не могли бы вы сказать мне, как вызвать предыдущий URL?Заранее спасибо.
[Приложение] Вот мой код.
class ApplicationController < ActionController::Base
def after_sign_up_path_for(resource)
session[:url_before_signup] || "/#{I18n.locale}"
end
def store_location
session[:url_before_signup] = stored_location_for(:user)
end
class Users::OmniauthCallbacksController < Devise::RegistrationsController
def facebook
set_locale
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
if @user.persisted?
# if you check session[:url_before_signup], it always turn to nil
sign_in_and_redirect @user, :event => :authentication
set_flash_message(:notice, :facebook_login_success) if is_navigational_format?
set_flash_message(:notice, :facebook_login_success_and_regist_data) if is_navigational_format? && @user.completed_at.nil?
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end