Jump to content
horacio2009

cakephp não reconhece meu login

Recommended Posts

Estou estudando CakePHP e criei um projeto para treina login, mas não importa o que faço, o login/senha sempre nega o acesso. aí vão os códigos

public function initialize()
{
    //appController
    parent::initialize();

    $this->loadComponent('RequestHandler');
    $this->loadComponent('Flash');


    //---------------------------------
    $this->loadComponent('Auth', [
        'authenticate' => [
            'Form' => [
                'fields' => [
                    'username' => 'email',
                    'password' => 'password'
                ]
            ]
        ],
        'loginAction' => [
            'controller' => 'Users',
            'action' => 'login'
        ],
         // If unauthorized, return them to page they were just on
        'unauthorizedRedirect' => $this->referer()
    ]);
    //------------------------------------

    $this->Auth->allow(['display', 'view', 'index']);
}

já no users contoller

public function initialize()
{
    parent::initialize();
    // Add the 'add' action to the allowed actions list.
    $this->Auth->allow(['logout', 'add']);
}

public function logout()
{
    $this->Flash->success('You are now logged out.');
    return $this->redirect($this->Auth->logout());
}   

    public function login()
{
    if ($this->request->is('post')) {
        $user = $this->Auth->identify();
        if ($user) {
            $this->Auth->setUser($user);
            return $this->redirect($this->Auth->redirectUrl());
        }
        $this->Flash->error('Your username or password is incorrect.');
    }
}

já página de login:

{
  <h1>Login</h1>
  <?= $this->Form->create() ?>
  <?= $this->Form->control('email') ?>
  <?= $this->Form->control('password') ?>
  <?= $this->Form->button('Login') ?>
  <?= $this->Form->end() ?>
}

a tabela do banco:

  CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
  );

enfim...o que tá errado???obrigado a todos!! Horácio

Share this post


Link to post
Share on other sites

Antes de salvar um usuário no banco adicione esse código na entidade users:

use Cake\Auth\DefaultPasswordHasher;

...

public function _setPassword($password) {
  $hasher = new DefaultPasswordHasher();
  return $hasher->hash($password);
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By luigiferrari
      Boa Tarde, sou iniciante no php, mas acho q isso seria coisa simples de se fazer. Porem não estou conseguindo...
      Se puderem me ajudar. 
      Agradeço desde já!


    • By winter2018
      Boa tarde galera 
       
      Preciso por favor de uma ajuda.
      Estou a criar um sistema de cadastro de currículos em php.
       
      Preciso que ao escolher  as línguas que o usuário falar, essas informações sejam armazenadas num array para depois serem inseridas  no  mysql junto com outros campos, como  nome,  idade, etc.
       
       
      Sei programar em php mas não  tenho ideia de como fazer isso.
       
      Por favor me ajudem 
       
       
      Winter 2018
    • By SECONDSS
      boa noite, preciso entregar algumas questões até daqui a pouco,meu tempo está corrido e gostaria da ajuda de vocês para resolver essa questão. obrigado desde já!

      QUESTÃO 16 -

      Desenvolva um programa utilizando PHP e exibir os resultados desse programa que tenha todas as classes suficientes para que:
      Represente o nome completo de uma pessoa, composto de três strings (nome próprio, nome do meio e nome da família). 
      ATENÇÃO - 
      Escreva nessa classe o método rubrica que retorna somente as iniciais do nome completo em caracteres minúsculos, Escreva nessa classe o método assinatura que retorna as iniciais dos nomes próprio e do meio (com pontos) Escreva nessa classe um método que retorne o nome de família completo. Por exemplo, se o nome da pessoa representado por essa classe for “Jack Mill Dam”, o método rubrica deve retornar ”jmd” e o método assinatura deve retornar ”J.M. Dam”. Para facilitar, considere armazenar os três nomes em strings separadas.
    • By duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
    • By guzulino
      Então... eu preciso inserir uma paulada de dados em um banco de dados de vez em quando, eu até consigo importar de um CSV pro banco, mas eu preciso fazer isso através do php e eu não tenho nem ideia de como fazer isso, procurei por aqui e não achei, se alguém tem alguma resposta ou referência, manda o link que eu vou dar uma olhada. Valeu.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.