Facebook oauth Войти с пользовательскими параметрами, используя драгоценный камень
Я пытаюсь передать пользовательский параметр в URL-адрес oauth Facebook, чтобы вернуть его в обратный вызов. Я знаю, что это возможно, но я использую драгоценный камень Sorcery, и мне нужно установить параметр динамически, то есть я не могу определить его в файле инициализации sorcery.rb, как сейчас:
Rails.application.config.sorcery.configure do |config|
config.facebook.callback_url = ENV['FACEBOOK_CALLBACK_URL']
...
end
Мне нужно определить в моем контроллере, как я могу сделать это с этим драгоценным камнем?
2 ответа
Решение
Я не нашел этого документированного, но это сработало, поэтому просто вставьте в свой контроллер:
::Sorcery::Controller::Config.facebook.callback_url = ENV['FACEBOOK_CALLBACK_URL'] + "param1=foo"
и param1 будет отправлен вам после аутентификации:)
Использовать state
Параметр описан в диалоге oAuth.
Уникальная строка, используемая для поддержания состояния приложения между запросом и обратным вызовом.
Facebook перенаправит обратно на сайт с помощью:
YOUR_REDIRECT_URI#
access_token=USER_ACCESS_TOKEN
&expires_in=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES
&state=YOUR_STATE_VALUE