覚書。
事前準備
認証機能準備にあたり、phpmyadminにてusersテーブルを作成。
CREATE TABLE `users` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255), `password` VARCHAR(255), `role` VARCHAR(20), `mail` TEXT, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL );
(※↑ID、usernameパスワードと権限付けた)
Usersをbakeする
cd \xampp\htdocs\XXXX cakephpが展開されている場所XXXXに移動
bin\cake bake bakeコマンドの一覧表示
bin\cake bake all bake all対象テーブル表示
bin\cake bake all users usersをbakeする
ブラウザでアクセスする
http://localhost/news/users/add
パスワードのハッシュ化
Model/Entity/User.php
ページ(use Cake\ORM\Entity; の)上部に追加
use Cake\Auth\DefaultPasswordHasher;
※エラーが出る場合はこんなエラーがでる
Class 'App\Model\Entity\DefaultPasswordHasher' not found File C:\xamp\htdocs\bookmarker\src\Model\Entity\User.php Line: xx
/** * エンティテイの修正 method * use cake\Auth\DefaultPasswordHasher;を追加 */ protected function _setPassword($password){ return (new DefaultPasswordHasher)->hash($password); }
_setPassword…パスワードの値を設定する際にハッシュ化するためのもの
DefaultPasswordHasher・・・パスワードハッシュ化のためのクラス
このメソッドを用意することで、passwordの項目が自動的にハッシュ化されて保存されるようになる。
※ハッシュ化はConfigフォルダ内app.phpにあるセキュリティソルトの値を使って生成している。