Вполне возможно, что вы на самом деле не входите в систему. Следует иметь в виду, что Devise I основывается на Warden, который является промежуточным программным обеспечением для стойки.
Я попробовал ваш метод app.post для входа в приложение, над которым я работаю, которое использует Devise.После публикации на странице входа и получения перенаправления 302 app.session
показывал идентификатор пользователя надзирателя.
>> app.session
{
"_csrf_token"=>"dT0/BqgLb84bnE+f1g...",
"warden.user.user.key"=>["User", [42843], "$2a$10$1OU.1BixIba..."],
"session_id"=>"0dd49c05ff4e6362c207c6eb877f86cd"
}
Я смог получить пользователя следующим образом:
>> current_user = User.find(app.session["warden.user.user.key"][1][0])
Когда я вышел из системы, а затем попытался войти в систему с неверным паролем, я получил 200, а затем приложение.В сеансе отсутствует информация о пользователе и он содержит только токен csrf и идентификатор сеанса, как в вашем примере.
Кстати: после входа в систему app.controller.current_user
был равен нулю, даже когда идентификатор пользователя наблюдателя находился в сеансе.