2013-12-24 4 views
0

Я использую драгоценный камень omniauth, чтобы пользователи могли записаться на мой сайт. У меня есть два разных типа пользователей: студенты и арендодатели, у которых есть полиморфная связь с пользователем.Facebook-логин с OmniAuth для разных типов пользователей

has_one :user, as: :userable 

У меня есть другая регистрация для каждого, и я хочу добавить опцию «Facebook connect» для обоих. Проблема заключается в том, что обратный вызов facebook auth только направляется на одно действие контроллера. Как я могу отделить обратный вызов в зависимости от того, какой тип пользователя регистрируется? Могу ли я узнать в обратном вызове, которое вызвало это действие контроллера? Могу ли я отделить ссылки для входа в facebook? например:

auth/facebook/student 
auth/facebook/landlord 

Буду признателен за любую помощь или идеи. Благодаря!

ответ

0

Вы можете изменить facebook SIGNUP ссылки на это:

auth/facebook?user=student 
auth/facebook?user=landlord 

, а затем в вашем facebook действия, вы можете сделать следующее:

if request.env['omniauth.params']['user'] == 'landlord' 
    ... 
else 
    ... 
end 
+0

Спасибо! это хорошее решение. Я закончил использовать жемчужину Koala для аутентификации, и там я могу указать разные обратные вызовы –

Смежные вопросы