Как передать параметры через запрос входа в Omniauth/Facebook?

Я интегрировал драгоценный камень omniauth-facebook с устройством devise. Я получил подписку и вошел на работу, но я не могу понять, как передать дополнительные параметры в facebook метод обратного вызова в RegistrationsController, например, URL-адрес, с которого пользователь запустил процесс регистрации.

Параметры, которые я включаю в исходный URL (например, localhost:3000/auth/facebook?url="url") не дошли до моего facebook метод в моем контроллере регистрации.

эрб ссылка

<%= link_to "fb", facebook_omniauth_path(url: "url") %>

маршруты

get 'auth/facebook', as: 'facebook_omniauth'
get 'auth/facebook/callback' => 'registrations#facebook'

контроллер

  def facebook
    @user = User.from_omniauth(request.env["omniauth.auth"])
    if @user.persisted?
      redirect_to root_path
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end

Кто-нибудь знает, как я могу использовать url параметр в моем facebook метод?

1 ответ

Решение

omniauth.auth не отображает дополнительные параметры по умолчанию. Вам нужно использовать omniauth.params вместо того, чтобы получить url значение, как показано ниже.

request.env["omniauth.params"]["url"]
Другие вопросы по тегам