CakePHP – Redirecionar tela de login para página fora da aplicação

Uma situação bem inusitada que pode ocorrer durante o desenvolvimento de uma aplicação é precisar atrelar o seu sistema de login à uma página externa à aplicação.

Vou mostrar como pode-se fazer isso usando CakePHP.

No CakePHP nós temos o conceito de herança aplicado aos controllers. Neste caso, nosso controller de usuários herda da app_controller métodos e atributos. Quando se tem o sistema de login em CakePHP, deve-se habilitar o componente Auth. Vamos também fazer umas modificações em nosso método AppController::before_filter(). No final teremos algo como isso.

<?php
class AppController extends Controller {

	var $components = array('Auth');

	function beforeFilter(){
		$this->Auth->userModel = 'Usuario'; # mudamos o padrao de User para Usuario

       }

}
?>

Agora nosso arquivo usuarios_controller.php. Ele deve ter os métodos login() e logout() para funcionar corretamente com o components Auth. Neste caso, devemos apenas implementar algumas pequenas mudanças no método login() como mostrado abaixo:

<?php
class UsuariosController extends AppController {

	var $name = 'Usuarios';

	function login() {
	   $this->redirect('http://www.outro.dominio.com.br/pagina.html');
	}

	function logout() {
		$this->redirect($this->Auth->logout());
	}

}
?>

Por isso é hoje. Essa dica é muito quando sua aplicação fica em outra parte do domínio que vai passar o formulário de login. ;)

Tags: , , ,
Se você gostou do post, não se esqueça de inscrever-se no feed RSS. Inscreva-se via RSS

Deixe Comentário