1
resposta

Erro no login com Laravel 5.7

Olá pessoal, bom dia.

Estou com um problema com login no Laravel 5.7 Meu método de login:

public function authenticate(Request $request) {
        $email = $request->input("ds_usuas_email");
        $password = $request->input("cd_usuas_senha");
        $hashed = md5($password);

        $credentials = array('ds_usuas_email' => $email , 'cd_usuas_senha' => $password);

        if (Auth::attempt(['ds_usuas_email' => $email, 'cd_usuas_senha' => $hashed])) {
            return redirect()->intended('welcome');
        } else {
            return "não funcionou!";
        }

    }

Sendo quando preencho meu formulário de login no browser em envio dá o seguinte erro:

ErrorException (E_NOTICE)
Undefined index: password

//A classe onde está dando o erro.
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php

public function validateCredentials(UserContract $user, array $credentials)
    {
        $plain = $credentials['password']; <- O erro está acontecendo aqui.
        $hashed = $user->getAuthPassword();

        if (strlen($hashed) === 0) {
            return false;
        }

        return password_verify($plain, $hashed);
    }

Alguém já passou por esse problema?

1 resposta

Boa tarde Rodrigo!

O erro provavelmente aconteceu porque você está customizando a coluna da senha, mas não avisou em todos os lugares necessários dessa modificação.

No método de login, o código

$credentials = array('ds_usuas_email' => $email , 'cd_usuas_senha' => $password);

cria um array com índices ds_usuas_email e cd_usuas_senha, provavelmente já customizados com os campos do seu banco, mas a classe Illuminate/Auth/EloquentUserProvider.php está usando os campos default do Laravel.

Como está a sua classe AuthController? Talvez tenha faltado configurar os campos específicos de login e senha em algum método dela.