Faw*_*oor 5 zend-framework zend-auth zend-session
我通过zend auth创建了一个登录系统,这里是代码
// userAuthentication
public function authAction(){
$request = $this->getRequest();
$registry = Zend_Registry::getInstance();
$auth = Zend_Auth::getInstance();
$DB = $registry['DB'];
$authAdapter = new Zend_Auth_Adapter_DbTable($DB);
$authAdapter->setTableName('user')
->setIdentityColumn('user_name')
->setCredentialColumn('user_password');
$username = $request->getParam('username');
$password = $request->getParam('password');
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
$data = $authAdapter->getResultRowObject(null,'password');
$auth->getStorage()->write($data);
$this->_redirect('/login/controlpannel');
}else{
$this->_redirect('/login/login');
}
}
Run Code Online (Sandbox Code Playgroud)
这项工作现在很好.用户(表)中也有user_id(列),其中也有用户名和密码.我需要从这个表中获取特定的user_id,只需登录并将其放入会话中
$user_session = new Zend_Session_Namespace('user_session');
$user_session->username = $username;
$user_id->user_id = $user_id;
Run Code Online (Sandbox Code Playgroud)
这样我就可以查询这个$ user_id的一些信息,并将结果传递给view(name)controlpanel
小智 8
从存储中获取用户ID:
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
echo $userInfo->user_id;
Run Code Online (Sandbox Code Playgroud)
小智 8
虽然这已经得到了解答,但我倾向于getIdentity()比getStorage()->read()链更频繁地使用该功能.以下示例.
// to check if authenticated
Zend_Auth::getInstance()->hasIdentity();
// to actually get the details from storage
Zend_Auth::getInstance()->getIdentity()->user_id;
// if I need to use the identity over and over
$identity = Zend_Auth::getInstance()->getIdentity();
$userId = $identity->user_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11118 次 |
| 最近记录: |