RememberMe component

Okay, as promised, here is my RememberMe component.

class RememberMeComponent extends Object
{
	var $components = array('Session', 'Cookie');
	var $uses = array('User');

	function startup(&$controller)
	{
		//use this later, perhaps.
	}

	function remember()
	{
		if(!$this->Session->check('User') && $this->Cookie->check('login'))
		{
			loadModel('User');
			$user =& new User();
			$cookie_arr = $this->Cookie->read('login');
			$someone = $user->findByEmail($cookie_arr[0]);
			if($someone['User']['password'] == $cookie_arr[1])
			{
				$this->Session->write('User', $someone['User']);
			}
		}
	}
}

You need to have Rossoft’s Cookie Component installed. His cookie component also uses crypt vendor libraries as well, so there’s lots of things needed to get this running.

Drop my code in /app/controllers/components/remember_me.php. You don’t need to reference Rossoft’s Cookie Component in the controller, just do var $components = array('RememberMe');.

Then put $this->RememberMe->remember() in the beforeFilter of each controller, any page that a user with a cookie enter into should now be logged in automatically.

 
Blog comments powered by Disqus