覚書。
事前準備
認証機能準備にあたり、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にあるセキュリティソルトの値を使って生成している。
