Basic認証
開発環境:CakePHP2.5.1
簡単に認証機能をつけたい時に使うのが、Basic認証。
.htaccessを使うのが通常ですが、今回はCakePHPを使ってBasic認証をやってみましょう。
データベースを作成する
最低限必要なカラムを持ったテーブルを作成します。
CREATE TABLE users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), password VARCHAR(50) );
データを登録する
ログインするユーザーのデータを登録します。
passwordはハッシュ化する必要がありますので、app/Controller/AppController.php に暫定的にハッシュ化の仕組みを組み込んでパスワードを生成してみます。
App::uses('SimplePasswordHasher', 'Controller/Component/Auth'); class AppController extends Controller { public $components = array('Auth'); public function beforeFilter() { $passwordHasher = new SimplePasswordHasher(); echo $passwordHasher->hash('パスワードの平文をここに記載'); exit; } }
ここで出力されたハッシュ化されたパスワードをデータベースに任意のユーザー名と共に登録します。
登録が完了したら、上記で追加したコードは一旦すべて消しておきます。
Basic認証を追加する
最後に app/Controller/AppController.php へBasic認証を追加します。
class AppController extends Controller { public $components = array( 'Auth' => array( 'authenticate' => array('Basic') ) ); }
これでサイトにアクセスするとBasic認証がかかります。