Dunno why but I can't post in the original thread. original thread=> " new auth component in cake 1.2 " http://groups.google.com/group/cake-php/browse_frm/thread/f2d0143c2e59ce2b/30126ff7024d152c?lnk=gst&q=auth&rnum=2#30126ff7024d152c
My 2 cents about the new Auth component (Cake 1.2.0.5146alpha) It stores encrypted passwords in the DB when you add/edit a new user. Let's start with the users controller: ----------------------------------------------------------------------------------------------------- users_controller.php ----------------------------------------------------------------------------------------------------- <?php class UsersController extends AppController { var $name = 'Users'; var $helpers = array('Html', 'Form', 'Session'); var $components = array('Auth', 'Session'); function beforeFilter() { //actions we allow without authentication, you can also put them in the app_controller.php $this->Auth->allow('index', 'register', 'login', 'logout'); } function login() { //user already logged in? //checking if session has been written $user_id = $this->Auth->user('id'); if (!empty($user_id) && $this->Session->valid()) { $this->Session->setFlash('You are already logged in'); $this->redirect(array('action'=>''), null, true); } else { if(!empty($this->data)) { //calling login validation validLogin() in model if($this->User->validLogin($this->data)) { if($this->Auth->login($this->User->user)) { $this->Session->setFlash('You have successfully logged in'); $this->redirect(array('action'=>''), null, true); } else { $this->set('password', null); $this->set('auth_msg', 'Please try again'); } } } else { $this->set('auth_msg', 'Please enter your username and password'); } } } function logout() { $this->Session->destroy('user'); $this->Session->setFlash('You\'ve successfully logged out.'); $this->redirect(array('action'=>'login'), null, true); } ----------------------------------------------------------------------------------------------------- MODEL-> user.php the model has just a particular function (see below) that you must add ----------------------------------------------------------------------------------------------------- function validLogin($data) { $user = $this->find(array('username' => $data['User'] ['username'], 'password' => ($data['User']['password'])), array('id', 'username', 'password')); if(!empty($user)){ $this->user = $user['User']; return TRUE; } else { return FALSE; } } ----------------------------------------------------------------------------------------------------- DB table users ----------------------------------------------------------------------------------------------------- CREATE TABLE `users` ( `id` int(10) NOT NULL auto_increment, `username` varchar(250) NOT NULL default '', `password` varchar(50) NOT NULL, `name` varchar(255) default NULL, `email` varchar(250) NOT NULL default '', `created` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ----------------------------------------------------------------------------------------------------- VIEW->login.ctp ----------------------------------------------------------------------------------------------------- <h1>Log In:</h1> <?= isset($auth_msg) ? $auth_msg: ''?> <?php e($form->create('User', array('action'=>'login')));?> <?php echo $form->input('username');?> <?php echo $form->input('password', array('value'=>''));?> <div class="submit"><input type="submit" value="Login" /></div> <?php echo $form->end();?> ----------------------------------------------------------------------------------------------------- Enjoy and let me know if you have better ways for authentication. Dan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---