Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Problem com Login no Laravel 5.5

Olá pessoal , estou com um problema que toda vez que tento autenticar um login no laravel 5.5 ele sempre retorna false , estou fazendo de acordo com o que foi passado nas aulas . Abaixo segue o código que densenvolvi.

<?php
namespace estoque\Http\Controllers;
use Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
    public function __construct(){
      $this->middleware('autorizador');
    }
    public function form(){
        return view('form_login');
    }
    public function login(){
    $credenciais = Request::only('email','password');
     if(!Auth::attempt(['email' => $credenciais['email'], 'password' => $credenciais['password']])) {
        return "Usuário ". 
            Auth::user()->name 
            ." logado com sucesso";
            }
            return 'Não Logou';
     }
    public function logout(){
        Auth::logout();
        return'deslogou';
    }
}
<?php
namespace estoque\Http\Middleware;
use Closure;
class Autorizador
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!$request->is('login') && \Auth::guest()){
            return redirect('/login');
        }
        return $next($request);
    }
}
@extends('layout.principal')

@section('conteudo')

<form action="/login" method="post">
<input type="hidden" name="_token" value="{{{ csrf_token() }}}" />
  <div class="form-group">
    <label>Email</label>
    <input name="email" class="form-control" required/>
  </div>
  <div class="form-group">
    <label>Senha</label>
    <input name="password" class="form-control" type="password" required/>
  </div>
  <button type="submit" 
    class="btn btn-primary btn-block">Submit</button>
</form>

@stop
5 respostas

Oi Lucas, tudo bom?

Acredito que devemos verificar se o login deu certo:

public function login()
    {
        $credenciais = Request::only('email', 'password');

        if(Auth::attempt($credenciais)) {
            return "Usuário NOME logado com sucesso";
        }

        return "As credencias não são válidas";
    }

Aqui:

     if(!Auth::attempt(['email' => $credenciais['email'], 'password' => $credenciais['password']])) {

Estamos verificando se não deu certo.

Abraço.

Olá André , estou bem sim , e você ? Então eu já havia alterado esse trecho de código ontem de noite e continuou não dando certo.

 public function login(){
    $credenciais = Request::only('email','password');

     if(Auth::attempt($credenciais)) {
        return "Usuário ". 
            Auth::user()->name 
            ." logado com sucesso";
            }
            return 'Não Logou';
     }

Ele sempre está dando Não Logou.

Bem, para logar você precisa tem algum registro no BD.

Houve problemas ao fazer um INSERT?

OBS: A senha deve ser criptografada com bcrypt ou Hash::make.

Exemplo

        $user = User::create([
            'name' => $this->name,
            'email' => $this->email,
            'password' => bcrypt($this->password),
        ]);

        auth()->login($user);

Ao entrar na rota, faça um dd ou return para saber se os dados estão chegando corretamente, exemplo:

    public function authenticate()
    {
        dd(request(['name', 'email']))
    }
    public function authenticate()
    {
        return request(['name', 'email'])
    }
solução!

Olá pessoal , ápos algumas horinhas pensando consegui resolver o problema , comecei a utilizar um UserRequest e também encriptar a senha com o Hash::make(), ápos isso consegui efetuar o login com sucesso , muito obrigado pela força.

Boa Lucas, obrigado por compartilhar com a gente aqui a solução =)

Qualquer problema é só falar.

Abraço!