Как войти в систему в разделе «Очистка от пользовательского маршрутизатора»? - PullRequest
2 голосов
/ 26 февраля 2012

Я добавляю Omniauth в свое приложение, где использую Clearance для обычной аутентификации. Я столкнулся со стеной, пытаясь программно войти в систему.

Я ищу что-то вроде sign_in_and_redirect от Devise, но не могу найти его в Clearance.

Я пытался использовать sign_in <User> и звонить redirect_to root_path сразу после. Однако при загрузке корневой страницы current_user не устанавливается.

Кто-нибудь знает, как это сделать? Кто-нибудь знает учебник по добавлению Omniauth в Clearance?

Спасибо

1 Ответ

3 голосов
/ 03 марта 2012

Я не использовал Clearance, я обычно либо выполняю свою собственную аутентификацию, либо использую Devise, но быстрый просмотр кода показывает, что sign_in (@user) делает не более, чем set @ current_user = @ user, поэтому вам нужно немногоспособ сохранить эту информацию, прежде чем перенаправить.Клиренс, похоже, использует для этого токен запомнить, поэтому я бы попробовал (не проверено) что-то вроде этого:

sign_in(@user)
cookies['remember_token'] = @user.remember_token
redirect_to(root_path)
...