0

すでにログインフォームを作成しており、テーブルに対して認証できます。

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

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

ありがとう

4

2 に答える 2

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;

    }
}

$ dataは、ログインフォームからのポストリクエストであり、コントローラーから次のように関数を呼び出します。authenticate($ this-> _ request-> getPost())

ユーザーの身元を確認したい場合は、次のようにします。

$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
    $identity = $auth->getIdentity(); //this is the user in my case
}

ログインフォームにチェックボックス(publicという名前)があります。チェックされている場合、認証情報はCookieに保存されますが、それ以外の場合は、ユーザーがブラウザーを閉じると削除されます(Zend_Session :: forgetMe())

これは、認証プロセスの簡単なレビューです。

于 2011-09-10T06:32:08.930 に答える
0

ここに zendcasts のチュートリアルがあります。彼らはいくつかの団結的なものさえ提供します。

http://www.zendcasts.com/zend-acl-with-authentication-and-reflection/2009/06/

本当にいいスタートだと思います。

于 2011-09-10T09:52:38.333 に答える