http://www.grafikart.fr/tutoriels/securiser-cakephp-auth-49
best method
avec htaccess: dans le .htaccess du répertoire app, créer un htpasswd avec la commande
htpasswd -c .htpasswd radeff
puis éditer le htaccess et ajouter:
<FilesMatch "admin$"> #radeff trick to protect admin area AuthName "Member Only" AuthType Basic AuthUserFile /home/radeff/unige/cms/static/db/app/.htpasswd require valid-user </FilesMatch>
method 1
http://book.cakephp.org/fr/view/172/Authentication
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` char(50) collate utf8_unicode_ci default NULL, `password` char(255) collate utf8_unicode_ci default NULL, `email` varchar(255) collate utf8_unicode_ci NOT NULL, `role` varchar(255) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
$user_email = $_SESSION['Auth']['User']['email']; [Auth] => Array ( [User] => Array ( [id] => 1 [username] => radeff [email] => frederic.radeff@unige.ch [role] => admin ) )
method 2
http://book.cakephp.org/view/327/simple-user-authentication
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(255) NOT NULL, `password` varchar(32) NOT NULL, `first_name` varchar(255) NOT NULL, `last_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `users` ( `id` , `username` , `password` , `first_name` , `last_name` ) VALUES ( NULL , 'admin', SHA1( 'YOURCAKESecurity.saltYourPassword' ) , '', '' );
- password : résultat du passage de la clé de sécurité suivie du mot de passe de l’administrateur par une méthode de hachage (SHA1 par défaut, qui produit toujours une chaine de 40 caractères) ;
INSERT INTO `users` (`id`, `login`, `password`, `disabled`, `created`) VALUES (1, 'admin', SHA1(6a10cdde80fb56150efda09365f91579ea74a944admin), 0, NOW());
ACL
enfin un qui marche nickel! un peu plus long, mais à garder et à réutiliser
http://book.cakephp.org/view/641/Simple-Acl-controlled-Application
ensuite on peut l'utiliser comme ça p.ex.
views
<? echo "Bienvenue," .$session->read('Auth.User.username'); echo "<br>Ton identifiant: ".$session->read('Auth.User.id'); echo "<br>Ton groupe: ".$session->read('Auth.User.group_id'); echo ?>
controllers
$utilisateur=$this→Auth→user('id');
#$this->$session->read('Auth.User.id');