2011-12-12 118 views
2

我已經實現了我自己的激活機制,用戶在登錄到系統之前首先必須確認電子郵件。但是,攔截登錄以檢查用戶是否已被激活的最佳做法是什麼?Symfony2 - 攔截登錄以檢查用戶是否已啓用

,我想簡單地做一個檢查例如爲:

if (!$user->isEnabled()) 
    //TODO refuse login 

做我添加onSecurityInteractiveLogin監聽器?或者我必須自己實現整個登錄機制?

+0

請將您的解決方案轉到答案並接受答案。 –

回答

5

我發現了一個解決這個問題通過使用以下接口:

Symfony\Component\Security\Core\User\AdvancedUserInterface 

並實施了isEnabled()方法。

如果我現在嘗試使用非活動用戶登錄,則會拋出Symfony\Component\Security\Core\Exception\DisabledException