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認証がかかります。
