Hi Reader's,
Welcome to FindNerd,today we are going to discuss on authenticate application in CakePHP using Auth Component.
If we are developing a web application in CakePHP then some time we have to use Authenticate user for login functionality, In CakePHP "Auth" component provides these functionality to authenticate a user.
We can use authenticate application in our CakePHP application just follow some basic steps which is given below:
Step-1. In first step we have to create a $components array for using 'Auth' in our AppController.
<?php
public $components = array('Session', 'Cookie',
'Auth' => array('autoRedirect' => false));
//Here add session and cookies components beacuse when a user is not active from a long time, then CakePHP application will automatically redirect us to UsersController's login action.
public $components = array( 'Session',
'Auth' => array(
'autoRedirect'=>false,
'loginRedirect' => array(
'controller'=>'users',
'action' =>'index'
),
'logoutRedirect' => array(
'controller'=>'users',
'action'=>'login' // when the user logs out.
),
)
),
);
?>
Step-2: In the second step we have to implement auth component in our controller (UserControler) for login action and also we have to define those action which we want to user access directly. So for that, we will use beforeFilter() action with adding the allow method.
Let see how use beforeFilter() ?
<?php
public function beforeFilter(){
parent::beforeFilter();
$this->Auth->allow('register', 'login','signup');
}
?>
In the above code, there are three actions available 'register', login',' signup' which is accessed by the user directly without any authentication.
Now we will Create login() action in our UsersController
<?php
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirect(array('controller' => 'Posts', 'action' => 'index')));
}
//here set the flash massage for showing error massage
$this->Session->setFlash(('Invalid username or password, please eneter valid username or password'));
}
}
public function logout() {
$this->Auth->logout();
$this->redirect(array('controller' => 'users', 'action' => 'login'));//login action
exit;
}
?>
Step-3 Now in the last step we will create our view page:
<?php
echo $this->Form->create('User', array('id'=>'userloginform'));
echo $this->Form->input('User.username', array('type'=>'text','id'=>'username',
'label'=>'Username'));
echo $this->Form->input('User.password', array('type'=>'password', 'id'=>'password',
'label'=>'Password'));
echo $this->Form->submit('Login', array('class'=>'submit', 'div'=>false));
echo $this->Form->end();
?>
I hope this blog will help you to implement authenticate application in you CakePhP application.
0 Comment(s)