我有以下代碼,哪些工作,但現在下一步。Zend 2登錄後如何設置用戶
如何以及在哪裏設置會話,以便腳本「看到」用戶已經登錄?
if ($form->isValid()) {
$securePass = $this->getUsersTable()->getUserByUsername($this->params()->fromPost('username'));
if($securePass){
$bcrypt = new Bcrypt();
if ($bcrypt->verify($this->params()->fromPost('password') , $securePass->password)) {
$sm = $this->getServiceLocator();
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$authAdapter = new AuthAdapter(
$dbAdapter,
'users',
'username',
'password'
);
$authAdapter
->setIdentity($securePass->username)
->setCredential($securePass->password);
$result = $authAdapter->authenticate($authAdapter);
echo $result->getIdentity() . "\n\n";
}
else {
}
這說明如何獲得一個身份,但沒有說明如何設置它擺在首位。 – srayner
我已經改變了我的腳本,並且工作。這工作正常,爲什麼這麼複雜?現在我可以檢查$ container-> access是1還是0 – Bas
@Bas如果你認爲這個答案很複雜,那麼我很抱歉地說zf2不適合你。這個答案顯示瞭如何使用'Zend \ Authentication'組件登錄用戶。用你的方式,所有的域邏輯被添加到控制器中,這使得控制器太臃腫。所以,這也違反了MVC結構! –