2011-04-10 4 views
0

Zend_Db를 사용하여 Postgres 데이터베이스에 연결합니다. 데이터베이스에서 일부 함수를 사용하고 싶습니다. 하나는 내장되어 있고 (digest() 함수) 다른 것은 비 핵심입니다.Zend_Db 및 Zend_Auth의 데이터베이스 관련 함수

Zend_Db 및/또는 Zend_Auth에서 사용하도록 허용 할 수있는 방법이 있습니까? 현재는 다이제스트 기능을 제거하여 소금으로 저장할 수 없으므로 (예를 들어) 내장 된 UUID 기능을 사용하는 것과 같은 다른 기능도 작동하지 않습니다.

답변

0

암호에 문제가 당신이 예를 들어, 데이터베이스에 자신의 기능을 정의하여 해결할 수 다이제스트 기능 :

CREATE OR REPLACE FUNCTION sha1(character varying) 
RETURNS character varying AS 
BEGIN 
RETURN ENCODE(digest($1, 'sha1'), 'hex'); 
END; 
LANGUAGE plpgsql 

및 권한 부여에 대한

는 :

$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get('db')); 
    $authAdapter->setTableName('users') 
      ->setIdentityColumn('login') 
      ->setCredentialColumn('password') 
      ->setIdentity($username) 
      ->setCredential($password); 

    $authAdapter->setCredentialTreatment(
      "SHA1(CONCAT(?,salt))" 
    ); 

Zend_Db_Expr도 도움이 될 수 있습니다

관련 문제