4
ZV MVC中用戶網站/ REST身份驗證的最佳做法是什麼?如何和在哪裏把代碼在ZF框架?你能給我一個代碼示例嗎?Zend Framework用戶身份驗證
我有一個網站並寫入Zend框架一個REST服務器,但沒有實施用戶會話飛機。
THX!
ZV MVC中用戶網站/ REST身份驗證的最佳做法是什麼?如何和在哪裏把代碼在ZF框架?你能給我一個代碼示例嗎?Zend Framework用戶身份驗證
我有一個網站並寫入Zend框架一個REST服務器,但沒有實施用戶會話飛機。
THX!
認證在引導文件的_initAutoload
中設置,例如,像這樣:
if(Zend_Auth::getInstance()->hasIdentity()) {
Zend_Registry::set('role', Zend_Auth::getInstance()
->getStorage()->read()->role);
}else{
Zend_Registry::set('role', 'guests');
}
在您可能需要剛好路過登錄參數,而不是通過表單登錄來驗證REST認證的情況下。
因此,它可能看起來像這樣在你的AuthenticationController
:
private function getAuthAdapter() {
$authAdapter = new Zend_Auth_Adapter_DbTable(
Zend_Db_Table::getDefaultAdapter());
$authAdapter->setTableName('users') // the db table where users are stored
->setIdentityColumn('email')
->setCredentialColumn('password')
->setCredentialTreatment('SHA1(CONCAT(?,salt))');
return $authAdapter;
}
public function logoutAction() {
Zend_Auth::getInstance()->clearIdentity();
$this->_redirect('index/index');
}
public function loginAction(){
if (Zend_Auth::getInstance()->hasIdentity()){
$this->_redirect('index/index');
}
if ($request->isPost()){
$username = $request->getPost('username');
$password = $request->getPost('password');
if ($username != "" && $password != "") {
$authAdapter = $this->getAuthAdapter();
$authAdapter->setIdentity($username)
->setCredential($password);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
$identity = $authAdapter->getResultRowObject();
$authStorage = $auth->getStorage();
$authStorage->write($identity);
$this->_redirect ('index/index');
}
}
}
}
如果您需要zend_auth
更多的幫助和zend_acl
你可能有一個看看這個how to。
對此有何好運?我處於同樣的情況。 – 2010-02-01 13:25:35