Выйти из Devise из консоли - PullRequest
0 голосов
/ 22 ноября 2018

Как вручную выйти из системы пользователя (или всех пользователей) из консоли Rails использую самоцвет Devise .Ни одно из решений, которые я нашел для меня, не сработало.Как я могу вызвать sign_out для пользователя?Я пробовал например Devise::Controllers::SignInOut#sign_out(User.first).

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Удалить все сеансы пользователей легко, если вы храните сеансы пользователей в таблице сессий, которая является довольно стандартной.Это очень тяжело.

sql = 'DELETE FROM sessions;' # will destroy all sessions in the database    
ActiveRecord::Base.connection.execute(sql)

Если вы используете гем Devise, для уничтожения однопользовательского сеанса посмотрите здесь

Выйдите из системы с помощью devise gem rails

0 голосов
/ 23 ноября 2018

Чтобы выйти, вы можете использовать эту команду, которая очистит все пользовательские сессии:

rake db:sessions:clear

Если вы используете только один сеанс для учетной записи пользователя, вы можете использовать это:

<code>user = User.first
user.update_attributes(unique_session_id: "")
0 голосов
/ 22 ноября 2018

Многое из этого будет в значительной степени зависеть от того, как вы обрабатываете сеансы, и если вы поддерживаете эти проверки подлинности с некоторым постоянством базы данных (таблица сессий или проверок подлинности обычно там, где она существует).Если это просто путем установки файла cookie, вы не сможете сделать это напрямую через консоль, поскольку это связано с истечением срока действия файла cookie через браузер в браузере.

...