是否可以將CakeDC的用戶插件配置爲使用電子郵件字段作爲用戶名?CakeDC用戶插件:使用電子郵件字段作爲用戶名
默認情況下,在用戶插件中都有用戶名和電子郵件字段,所有工作都很棒!但是我想使用電子郵件作爲用戶名進行驗證,所以用戶註冊可以簡化。
我曾嘗試通過加載在的AppController驗證組件重寫UsersAuthComponent,但登錄停止工作,並說「錯誤的用戶名或密碼」。
public function initialize()
{
parent::initialize();
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'loginAction' => [
'plugin' => 'CakeDC/Users',
'controller' => 'Users',
'action' => 'login',
],
'authenticate' => [
'all' => [
'scope' => ['active' => 1]
],
'CakeDC/Users.RememberMe',
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password']
]
],
'authorize' => [
'CakeDC/Users.Superuser',
'CakeDC/Users.SimpleRbac',
],
'storage' => 'Session'
]);
$this->loadComponent('CakeDC/Users.UsersAuth');
}
繼文檔,我也bootstrap.php中關掉UsersAuthComponent。
Configure::write('Users.auth', false);
有沒有一招?我相信這是可能的,或者可能是一個錯誤?
我使用CakePHP 3.1和CakeDC用戶插件3.1
嗨艾薩克!感謝您的回答......不幸的是,我到現在還沒有時間來測試它。 我正在尋找「** FOC/Authenticate.MultiColumn **」插件,但該網站說不再維護。但它幫助導航我那裏得到我所需要;-) FOC在說在GitHub上的信息: 「** MultiColumnAuthenticate,但是現在可以用自定義查找CakePHP中取得3 **」 所以我意識到,必須用蛋糕3.1以乾淨的方式完成! **和它的工作。** – user3135308
錯誤在於,我一直從我的模板發送錯誤的輸入名稱: '$ this-> Form-> input('username');' 而不是 '$ this-> Form-> input('電子郵件');' 所以,即使配置好,它也沒有得到配置的電子郵件字段!我只是假設,CakeDC插件會爲我渲染這個字段,但它並沒有,.ctp模板必須進行自定義。 – user3135308
我確認,如上面主要帖子中提到的那樣,重寫Auth:'...'Form'=> [ 'fields'=> ['username'=>'email','password'=>'password'] ] ...''在您的自定義配置中** users.php **只會使用CakePhp3.1 + CakeDC用戶插件。 這裏有很好的文檔:[鏈接](http://book.cakephp.org/3.0/en/controllers/components/authentication.html)(查找「字段」) – user3135308