How to add google recaptcha on login form in cakephp

(1)First register your domain and create site key and secret key here

(2)Open file app/Config/bootstrap.php and add following setting

<?php
Configure::write('google_recatpcha_settings', array(
'site_key'=>'your-domain-site-key',
'secret_key'=>'your-domain-secret-key'
));
?>

(3)add following script in your layout file app/View/Layouts/default.ctp

<script src='https://www.google.com/recaptcha/api.js'></script>

(4)Open app/View/Users/login.ctp and add following html inside login form

<div class="g-recaptcha" data-sitekey="<?php echo Configure::read('google_recatpcha_settings.site_key'); ?>"></div>

(5)add following function in app/Controller/AppController.php

<?php
public function verifyRecatpcha($aData)
{
if(!$aData)
{
return true;
} 
$recaptcha_secret = Configure::read('google_recatpcha_settings.secret_key');
$url = "https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$aData['g-recaptcha-response'];	
$response = json_decode(@file_get_contents($url));			
if($response->success == true)
{
return true;
}
else
{
return false;
}	
}	 
?>

(6)Open file app/Controller/UsersController.php and add following code in login function after post values

<?php
if(!$this->verifyRecatpcha($this->request->data))
{
$this->Session->setFlash(__('Captcha incorrect.'),'default',array('class' => ''));
return $this->redirect('login');
}
?>