すでにログインフォームを作成しており、テーブルに対して認証できます。
Zend_Auth を使用する必要さえありますか?
Zend_Auth を実装する最良の方法はどこにありますか?
ありがとう
すでにログインフォームを作成しており、テーブルに対して認証できます。
Zend_Auth を使用する必要さえありますか?
Zend_Auth を実装する最良の方法はどこにありますか?
ありがとう
次の方法を使用して認証します。
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())
これは、認証プロセスの簡単なレビューです。
ここに zendcasts のチュートリアルがあります。彼らはいくつかの団結的なものさえ提供します。
http://www.zendcasts.com/zend-acl-with-authentication-and-reflection/2009/06/
本当にいいスタートだと思います。