Я пытаюсь создать сеанс явно так UserSession.create(@user, true)
, но сеанс не создается, current_user
- nil
.authlogic UserSession.create (@user), дающий unauthorized_record
Но когда я делаю это, я получаю < #UserSession: {: unauthorized_record => ""}>
us = UserSession.create(@user, true)
RAILS_DEFAULT_LOGGER.info(us.inspect) #=> UserSession: {:unauthorized_record=>""}
я посмотреть на Authlogic::Session::UnauthorizedRecord здесь говорит
Будьте осторожны с это, потому что Authlogic предполагает, что вы уже подтвердили, что пользователь - это тот, кем он говорит. Например, это метод, используемый для постоянного сохранения сеанса. Authlogic находит пользователя с токеном persistence. На данный момент мы знаем, что пользователь - это тот, кем он говорит, поэтому Authlogic просто создает сеанс с записью. Это особенно полезно для сторонних методов аутентификации, таких как OpenID. Пусть этот метод проверяет идентификатор, как только он проверяется, передает объект и создает сеанс.
, который является именно тем, что я пытаюсь сделать (я проверяю использование omniauth и создаю сессию с использованием authlogic).
Как исправить это, чтобы я мог получить действительный сеанс в current_user
?
Я нашел ваш вопрос, испытывая те же проблемы. Я обнаружил, что у вас, вероятно, есть действительный 'current_user', который просто недоступен, как вы думаете. Проверьте мой ответ на этот другой аналогичный вопрос: http://stackoverflow.com/questions/6638927/usersession-unauthorized-record-protected/33636110#33636110 – Aaron