為了方便講解與引用,將認證類放在Album模塊的模型目錄下。用戶認證的方式有多種,在這里介紹的一種是作者在開發中常用到的一種,數據庫認證的持久性認證。ZF2中的持久性認證其本質還是通過Session來實現的,只不過開發者在開發的時候根據就不會察覺到Session在這期間的存在。ZF2在使用持久性認證的時候如果沒有對認證空間進行重新命名,ZF2使用使用一個Zend_auth為其Session的默認命名空間,當你在new一個認證的實例的時候系統會自動的找到Zend_auth對應的Session命名空間。在此也可以看認證類與其他類在進行new 的時候可能會有所不同,這種不同也正是由于Session的相關機制所帶來的。
添加文件:`/module/Album/src/Album/Model.MyAuth.php`,具體內容如下:
~~~
namespace Album\Model;
use Zend\Db\Adapter\Adapter as DbAdapter;
use Zend\Authentication\Adapter\DbTable as AuthAdapter;
use Zend\Authentication\AuthenticationService;
class MyAuth {
protected $adapter;
public function __construct() {
$this->adapter = new DbAdapter(array(
'driver'=>'Pdo_Mysql',
'database'=>'test',
'host'=>'localhost',
'username'=>'root',
'password'=>''
));
}
public function auth() {
$authAdapter = new AuthAdapter($this->adapter);
$authAdapter
->setTableName('user') // 認證的數據表
->setIdentityColumn('username') // 認證字段
->setCredentialColumn('password'); // 校驗字段
$authAdapter
->setIdentity('admin') // 認證值
->setCredential('admin');// 校驗值
$auth = new AuthenticationService();
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
$auth->getStorage()->write($authAdapter->getResultRowObject());
return true;
}
return false;
}
public function isAuth(){
$auth = new AuthenticationService();
if($auth->hasIdentity()) return true;
return false;
}
}
~~~
代碼解釋:
public function auth() {} 進行認證
public function isAuth(){} 通過持久性認證判斷是否已經通過認證
$authAdapter = new AuthAdapter($this->adapter); 實例為一個認證適配器
$auth = new AuthenticationService(); 實例化一個認證服務,以實現持久性認證
- 序言
- 第1章 Zend Framework2 簡介
- 1.1 Zend Framework2 簡介
- 1.2 下載安裝
- 1.3 搭建開發環境
- 第2章 創建ZF2項目
- 2.1 新建一個項目
- 2.2 配置網站
- 2.3 偽靜態 .htaccess文件
- 2.4 添加啟動/入口文件
- 2.5 添加全局配置文件
- 2.6 添加自動加載文件 init_autoloader.php
- 2.7 IndexController 控制器
- 第3章 創建模塊文件
- 3.1 Module 文件
- 3.2 module.config 文件
- 3.2.1 router 路由配置
- 3.2.2 controllers控制器配置
- 3.2.3 view_manager 視圖管理器
- 3.2.4 service_manager 服務管理器
- 3.2.5 translator 翻譯器
- 3.2.6 navigation 導航條
- 第4章 創建控制器
- 4.1 控制器簡介
- 4.2 新建控制器
- 4.3 添加控制器的Action
- 第5章 創建視圖模板
- 5.1 創建模板
- 5.2 模板配置
- 5.3 編寫布局和錯誤異常模板
- 5.4 編寫Action 對應的模板文件
- 5.5 訪問 IndexAction
- 第6章 創建模型
- 6.1 ORM 對象映射法
- 6.2 使用分頁導航
- 6.3 自定模型
- 6.4 章節總結
- 第7章 實例應用
- 7.1 建立Album 模塊
- 7.2 添加模塊文件
- 7.3 添加模塊配置文件
- 7.4 創建數據表 album
- 7.5 添加模型文件
- 7.6 添加表單 AlbumForm
- 7.7 添加控制器 AlbumController
- 7.8 添加模板文件
- 第8章 用戶認證
- 8.1 建立數據表
- 8.2 新建認證類
- 8.3 引用認證類
- 第9章 結束語