Sunday, April 21, 2013

Re: Mensagem antes da autenticação

A condição a mais está verificando o tipo de requisição que está sendo feita a action login... E não tem relação alguma com posts de um blog.

Quando você abre a página de login, é enviada uma requisição GET para o servidor. E quando o formulário é enviado, o browser envia uma requisição POST para a mesma action.

Do jeito que seu código está, toda vez que a action login for acessada o $this->Auth->login() é testado, porém só é necessário se for um POST, por isso adicionei essa condição.


Em 21 de abril de 2013 20:20, Anderson Moraes <anderson.b4w@gmail.com> escreveu:
Vitor Pacheco, obrigado pela resposta.

Então, sua função tem uma condição a mais ( if ($this->request->is('post')) {), o que essa linha faz??? Pois no meu caso não se trata de um blog, e eu não tenho um "post".


Em sexta-feira, 19 de abril de 2013 17h25min19s UTC-3, Anderson Moraes escreveu:
Boa tarde pessoal.

Eu estou começando agora no CakePHP e estou fazendo uma área restrita, o que tá acontecendo é o seguinte, quando eu entro em uma página onde é necessário estar logado, eu sou direcionado para tela de login e é exibido a seguinte mensagem "Área Restrita", mas o problema é que junto está aparecendo a mensagem "Usuário ou senha inválidos", sendo que essa mensagem deveria aparecer somente após a autenticação.
Se eu entrar direto na tela de login ele me exibe somente a mensagem "Usuário ou senha inválidos", neste caso não deveria aparecer senha nenhuma.

Alguém aqui já passou por isso e pode me ajudar???

Seguem meu códigos:


AppController.php

<?php

App::uses('Controller', 'Controller');

class AppController extends Controller {
       
    public $components = array(
        //KitDebug
        'DebugKit.Toolbar',
        'Auth',
        'Email',
        'Session',
    );
  
   public $helpers = array('Html', 'Form', 'Session');
     
   public function beforeFilter()
   {
       $this->Auth->allow('display');
       $this->Auth->authError = 'Área restrita, efetue o login de acesso.';
       $this->Auth->loginError = 'Usuário ou senha inválidos.';
   }
   
}



User.php

<?php

App::uses('AuthComponent', 'Controller/Component');

class User extends AppModel {
   
    public $name = 'User';
   
    public function beforeSave($options = array()) {
        if (!empty($this->data['User']['password'])) {
            $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
        }
        return true;
    }
}

?>


UsersController.php

<?php

class UsersController extends AppController {

    public $name = 'Users';
 
    public function beforeFilter() {
        parent::beforeFilter();
    }
   
    public function login(){
        if($this->Auth->login()){
            $this->redirect($this->Auth->redirect());
        }else{
            $this->Session->setFlash(__('Usuário ou senha inválidos.'));
        }
    }
   
    public function logout(){
        $this->redirect($this->Auth->logout());
    }
   
    public function index(){
       
    }
   
    public function getUsers(){
        $users = $this->User->find('list', array('fields' => array('id')));
        $this->set(compact('$users'));
    }
}
 
?>



login.ctp

<h2><?php echo __('Login'); ?></h2>
<?php echo $this->Session->flash('auth'); ?>
    <?php echo $this->Form->create('User');?>
        <fieldset>
        <?php
            echo $this->Form->input('username');
            echo $this->Form->input('password');
        ?>
        </fieldset>
    <?php echo $this->Form->end('Entrar');?>


Desde já muito obrigado!!!

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Vitor Pacheco
Skype: vitor.pacheco.costa
Msn: vitor-p.c@hotmail.com
GTalk: vitorpc.18@gmail.com
Cel.: 71 8626-7909
Tel.: 71 3378-5778 /
 71 3287-3475

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments: