2011-02-27 34 views
1

所有寧靜的認證在我的Rails應用程序激活帳戶工作,但用戶能夠登錄沒有激活他們的帳戶。能夠登錄,而無需使用寧靜

當他們使用的帳戶激活時通過電子郵件發送給他們的網址。(activated_at列被更新)。

的Rails 2.3.5,1.8.7紅寶石

回答

1

在user.rb模型應該是這樣的,一個身份驗證方法:

def self.authenticate(login, password) 
    return nil if login.blank? || password.blank? 
    u = find :first, :conditions => 
     ['email = ? and activated_at IS NOT NULL', login] 
    u && u.authenticated?(password) ? u : nil 
end 

如果帳戶尚未激活的activated_at領域將是NULL,NULL,如果不允許用戶登錄直到賬戶被激活。

+0

甚至沒有想到在模型檢查。這是問題。它被評論爲測試。 – 2011-02-27 23:29:30

0

如果我沒記錯的話,你必須使用開關--include激活才能正常使用激活工作。

如果你有時間,我會建議您切換到設計進行驗證,但。它更多地以Rails 3爲導向。

+0

激活是設置。它發送電子郵件,似乎做所有激活的東西,但讓用戶登錄。我會考慮它雖然。我沒有進行身份驗證的初始開發,所以我不確定使用了這個參數。 – 2011-02-27 01:19:39