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