[英]Logout users with devise gem rails
在管理部分,我显示了当前登录用户的列表。 现在,管理员可以选择一个或多个用户并销毁他们的会话(注销他们)。 我不知道从哪里开始,请帮助我。
您可以通过传入用户对象在控制器操作中使用sign_out
方法:
# Make sure only admins can do this
def sign_out_user
@user = User.find(params[:id])
sign_out @user
end
更多信息在这里:
http://rubydoc.info/github/plataformatec/devise/master/Devise/TestHelpers%3asign_out
考虑到用户是您所需用户的集合,
for user in users
sign_out user
end
它应该可以解决您的问题。
希望能帮助到你 :)
Devise提供的sign_out
方法将无济于事。 我知道文档说它将注销您所请求的“资源”,但是如果您自己研究gem(设计和警告),您会发现,当给它一个对象(如用户)时,它只会弄清楚什么对象所属的作用域(即:user),并注销整个作用域。
Devise中的作用域是用于登录的名称空间。 您可能有一个需要登录的Customer模型,也有一个也需要登录的Vendor模型,并且您将使用不同的范围。 大多数应用程序仅使用与用户模型绑定的单个作用域。
您可能在会话存储中使用:cookie_store
,这是Rails的默认设置。 在这种情况下,除您本人外,无法注销任何单个用户。 Devise将您的登录信息存储在会话中,该会话信息存储在cookie中,而不存储在数据库中。 他们的浏览器具有凭据,因此您不能直接将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.