簡體   English   中英

如何通過Devise in Rails以編程方式登錄用戶

[英]How to programmatically sign in a user through Devise in Rails

我需要有一個使用Devise with Rails 4登錄的自定義機制。所以我在他們的文檔的Devise的測試助手部分找到了sign_in方法:

sign_in @user          # sign_in(resource)

但這是從網絡上簽名某人的正確方法嗎? 特別是,它會完成Devise在用戶登錄時所做的所有事情,例如記錄日期/時間戳,IP地址,登錄計數等嗎? 或者這只是為了測試目的?

Devise提供了一堆幫助,其中兩個是:

sign_in(resource_or_scope, *args)
sign_in_and_redirect(resource_or_scope, *args)

您可以從任何控制器使用它們。

如果使用sign_in已經適合您但將用戶留在空白頁面上,請檢查您的日志文件以查看是否存在重定向,以及重定向到何處。 或者通過使用上面的第二個幫助器來顯式重定向。

參考文獻:

這是以編程方式簽署用戶的正確和標准方式。查看設計登錄代碼會話#create,您可以看到他們也使用此方法。

簡而言之:是的,sign_in @user執行用戶登錄時通常會做的所有事情。例如,允許管理員以其用戶之一登錄可能很有用。

如何:如果您是管理員,請以其他用戶身份登錄

暫無
暫無

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

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