从控制台注销Devise用户?

时间:2015-07-04 01:55:15

标签: ruby-on-rails heroku devise

我在Heroku上。有没有办法登录控制台并注销特定用户,以便他们必须再次登录?使用Devise。

3 个答案:

答案 0 :(得分:3)

Warden将用户ID和加密密码存储在用户cookie中并对其进行签名。这意味着更改密码会将其签名。

请注意,如果你复制他们的加密密码并稍后将其归还,并且他们仍然拥有cookie,那么他们将会重新进入,因为没有发生任何事情。

如果您无法更改密码,我担心如果没有一些黑魔法你就无法做到这一点(例如,放一段只会在用户ID上运行的代码并将其注销)。

答案 1 :(得分:1)

我发现只更新密码会让用户退出。

user = User.find <x>
user.password = "<new password>"
user.save

刷新页面时,您会看到用户已注销。如果你将它设置为之前的状态,用户仍然会被注销。

答案 2 :(得分:0)

假设你已经部署了一些关键修复并且需要注销所有用户,你可以在你的application_controller.rb中加入一些黑魔法,但要确保PM没有看到它,因为他会烧掉你着火;)

before_action logout_users, if: :user_signed_in?

def logout_users
  expire_date = DateTime.strptime(last_deploy_time)
  sign_out current_user if current_user.current_sign_in_at < expire_date
end