有沒有辦法使Zend_Auth接受不區分大小寫的身份(即用戶名)? Zend_Auth似乎提供了一種爲證書字段添加特殊處理的方式,但不提供身份字段。如何使Zend_Auth大小寫不區分用戶名?
PS:我使用Zend_Auth_Adapter_DbTable指向Postgres的表。
有沒有辦法使Zend_Auth接受不區分大小寫的身份(即用戶名)? Zend_Auth似乎提供了一種爲證書字段添加特殊處理的方式,但不提供身份字段。如何使Zend_Auth大小寫不區分用戶名?
PS:我使用Zend_Auth_Adapter_DbTable指向Postgres的表。
像這樣的東西應該工作:
$authAdapter = new Zend_Auth_Adapter_DbTable(
$dbAdapter,
'usertable',
new Zend_Db_Expr('LOWER(username)'),
'password'
);
$authAdapter
->setIdentity(strtolower($this->_getParam('username'))
->setCredential($this->_getParam('password'));
而且一定要使用* _CI歸類一個數據庫中的用戶名字段(CI =不區分大小寫)。 希望它有幫助
+1。它會是不錯的包裹到延長'用簡單的構造'公共職能__construct($將對DBAdapter)'和'重載setIdentity()'方法Zend_Auth_Adapter_DbTable'定製權威性適配器此。請參閱http://pastebin.com/a6KnhKw8。 –
喜@大衛我面對你可以看到我的問題https://stackoverflow.com/questions/47300930/how-to-make-username-case-insensitive-in-zf2任何幫助明顯 –
你可以改變你的表,所以用戶名列的類型是citext所以它是不區分大小寫的,你仍然可以得到使用索引的好處。
嗨@ drew010你可以看到同樣的問題我的問題https://stackoverflow.com/questions/47300930/how-to-make-username-case-insensitive-in-zf2任何幫助明顯 –
嗨@Alex N.我面臨同樣的問題,你可以看到我的問題https://stackoverflow.com/questions/47300930/how-to-make-username-case-insensitive-in-zf2因爲你已經面臨這個問題 –