繁体   English   中英

用devise gem rails注销用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM