簡體   English   中英

從控制台注銷Devise

[英]Sign out of Devise from console

如何從Rails控制台手動注銷用戶(或所有用戶)? 我正在使用Devise gem 我沒有找到適合我的解決方案。 如何呼叫使用者的sign_out? 我已經嘗試過例如Devise::Controllers::SignInOut#sign_out(User.first)

其中很大一部分將很大程度上取決於您如何處理會話以及是否以某種數據庫持久性來支持那些身份驗證(通常會存在會話或身份驗證表)。 如果僅通過設置cookie,您將無法直接通過控制台執行此操作,因為它與通過瀏覽器中的warden使cookie過期有關。

如果您將用戶會話存儲在會話表中(這是非常標准的),則刪除所有用戶會話很容易。 這是非常沉重的手。

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

如果您使用的是Devise gem,那么要破壞單用戶會話,請點擊此處

用devise gem rails注銷用戶

要注銷,您可以使用以下命令,該命令將清除所有用戶會話:

rake db:sessions:clear

如果每個用戶帳戶僅使用一個會話,則可以使用以下方法:

user = User.first
user.update_attributes(unique_session_id: "")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM