2011-09-09 16 views
0

私は既にログインフォームを作成しましたが、テーブルに対して認証できます。Zend_Authを実装する最良の方法はどこにありますか?

Zend_Authを使用する必要はありますか?

Zend_Authを実装する最良の方法はどこにありますか?

おかげで、私が認証するために、以下の方法を使用し

+1

あなたはZend_Auth_Adapter_Interfaceを実装する権利を持っていますか?\ – Corbin

+0

あなたの経験が私のようなものならば、少なくとも123の完全に異なる最良の方法があるはずです。 – PurplePilot

+0

私の答えは良いです;) http://stackoverflow.com/questions/2046608/practical-zend-acl-zend-auth-implementation-and-best-practices – SMka

答えて

1

function authenticate ($data) 
{ 
    $db = \Zend_Db_Table::getDefaultAdapter(); 
    $authAdapter = new \Zend_Auth_Adapter_DbTable($db); 

    $authAdapter->setTableName('usuarios2'); 
    $authAdapter->setIdentityColumn('user'); 
    $authAdapter->setCredentialColumn('password'); 
    $authAdapter->setCredentialTreatment('MD5(?) and active = 1'); 


    $authAdapter->setIdentity($data['user']); 
    $authAdapter->setCredential($data['password']); 

    $auth = \Zend_Auth::getInstance(); 
    $result = $auth->authenticate($authAdapter); 

    if ($result->isValid()) { 

     if ($data['public'] == "1") { 
      \Zend_Session::rememberMe(1209600); 
     } else { 
      \Zend_Session::forgetMe(); 
     } 

     return TRUE; 

    } else { 

     return FALSE; 

    } 
} 

$データは、私はこのような関数を呼び出すコントローラから、ログインフォームからPOSTリクエストです: 認証($この - > _要求 - >でgetPost())訴訟において

ユーザーの身元を確認したい場合は、あなただけの:

$auth = Zend_Auth::getInstance(); 
if ($auth->hasIdentity()) { 
    $identity = $auth->getIdentity(); //this is the user in my case 
} 
その確認された認証情報をクッキーに保存されている場合、私は(publicという名前)]チェックボックスを持っているログインフォームで

は、ユーザーがブラウザ(にZend_Session :: forgetMeを())閉じたときに、それは

削除されますotherwhise

これは認証プロセスのクイックレビューです。

関連する問題