2011-06-28 42 views

回答

6

簡單的答案是

較長的答案是您要使用該模型來存儲此信息。在我看來,將用戶密碼存儲在PHP文件中是一個非常糟糕的主意。你會設置你的系統是完全不靈活的。當你有5個用戶時會發生什麼?

如果有一個users數據庫表設置,然後一個users PHP文件將會好得多。自從Cake的AuthComponent設置爲處理數據庫表後,從長遠來看,這將會減少很多工作。另外,read this post on Stack Overflow about storing passwords。它將提供一些有關爲什麼蛋糕的AuthComponent它的工作方式的見解。

0

雖然你可以創建一個自定義認證類,但除了學習內部行爲之外,我不知道如何使用它。

// Controller/Component/Auth/CustomBasicAuthenticate.php 
class CustomBasicAuthenticate { 

    public function authenticate(CakeRequest $request, CakeResponse $response) { 
     return true; 
    } 

    public function getUser($request) { 
     if (env('PHP_AUTH_USER') === 'foo' && env('PHP_AUTH_PW') === 'bar') { 
      return array(
       'User' => array(
        'id' => '1', 'username' => 'foo', 'password' => 'bar' 
       ) 
      ); 
     } else { 
      return false; 
     } 
    } 

    public function unauthenticated(CakeRequest $request, CakeResponse $response) { 
     $response->statusCode('401'); 
     $response->header('WWW-Authenticate: Basic realm="My Realm"'); 
     $response->body('fail'); 
     $response->send(); 
    } 
} 

// Controller/HelloController.php 
class HelloController extends AppController { 

    public $autoRender = false; 
    public $uses = array('User'); 

    public $components = array(
     'Auth' => array(
      'loginAction' => array(
      'controller' => 'hello', 
      'action' => 'index', 
     ), 
      'authenticate' => array(
       'CustomBasic' => array('userModel' => 'User') 
      ) 
     ) 
    ); 

    public function index() { 
     echo 'ok'; 
    } 
}