2011-04-17 62 views
2

我希望用戶與我的網站進行交互,而不必創建一個帳戶,然後創建一個帳戶(供應密碼,名稱信息..等),如果他們想要更多。例外與設計密碼是零

這工作正常,但如果用戶認爲他們已經創建了一個帳戶,然後嘗試登錄(有可能使用他們用所有的時間密碼)設計將通過一個例外:

BCrypt::Errors::InvalidHash in Devise/sessionsController#create 

因爲密碼是零。如果他們通過註冊並再次登錄,它就會起作用。

我使用的設計(1.2.0),導軌(3.0.4)和Ruby 1.9.2

我的意思是我可以去圍繞它通過創建一個虛擬的密碼,並有一個字段,如果說用戶已經註冊(或檢查是否提供了其他必填字段),然後在實際註冊時重置密碼,但我認爲在所有情況下都不應該通過上述例外。

有什麼我可以做/設置解決問題?

回答

0

最簡單的方法可能是生成一個隨機的,使用類似Devise.friendly_token[0..20]但你也可以重寫Devise控制器和方法登錄,搶救異常,並只是重定向。