我正在將一個應用程序從CakePHP 1.3升級到CakePHP 2.2.1。
我們正在實施ACL和AppController的我看到
if (isset($this->Auth)) {
if ($this->use_acl) {
$this->Auth->authorize = 'actions';
}
正如我已經修改了以下變量聲明:
var $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email', 'password' => 'password')
)
),
'loginAction' => array(
'admin' => false, 'prefix' => false, 'controller' => 'users',
'action' => 'login')
),
'Session', 'Facebook.Connect');
做它仍然需要我繼續:
$this->Auth->loginAction = array('admin' => false, 'prefix' => false, 'controller' => 'users', 'action' => 'login');
代碼工作可能聽起來很難看,但這就是升級! ;)
另外,我可以使用2.2.1中的$ this-> Auth->'auth properties',因爲它可能在1.3中嗎?
嗯,這段代碼不是由我完成的。它給我一個更新。當我運行代碼時,它會返回500個錯誤,我將在重構代碼庫後解決這個錯誤,而重構則會遇到這種情況。我檢查了手冊和精神上我介於1.3和2.x之間(你明白了嗎?)。我遵循http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html以及您已經提供的手動鏈接。是的,use_acl也會讓我感到不安。所以底線,沒有什麼改變? – Karma
設置Auth組件的方式沒有多大改變。但是,它處理認證的方式已經完全改變。手冊中有標誌描述了兩者的不同之處。也就是說,您需要在保存之前對您的密碼進行哈希處理,並且login()方法已更改。所以,你絕對需要改變你的應用來解決這個問題。但是,鑑於我們無法訪問整個應用中Auth組件的使用方式,因此不可能說您可以通過更改幾行代碼來解決問題。 –
謝謝@Scott。目前我將面臨很多問題。但是,必須認真完成認證。 – Karma