Laravel - Autenticação

A autenticação é o processo de identificação das credenciais do usuário. Em aplicações web, a autenticação é gerenciada por sessões que levam os parâmetros de entrada, como e-mail ou nome de usuário e senha, para identificação do usuário. Se esses parâmetros corresponderem, o usuário será autenticado.

Comando

O Laravel usa o seguinte comando para criar formulários e os controladores associados para realizar a autenticação -

php artisan make:auth

Este comando ajuda a criar scaffolding de autenticação com sucesso, conforme mostrado na imagem a seguir -

Controlador

O controlador que é usado para o processo de autenticação é HomeController.

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;

class HomeController extends Controller{
   /**
      * Create a new controller instance.
      *
      * @return void
   */
   
   public function __construct() {
      $this->middleware('auth');
   }
   
   /**
      * Show the application dashboard.
      *
      * @return \Illuminate\Http\Response
   */
   
   public function index() {
      return view('home');
   }
}

Como resultado, o aplicativo scaffold gerado cria a página de login e a página de registro para realizar a autenticação. Eles são mostrados abaixo -

Conecte-se

Cadastro

Autenticação manual de usuários

Laravel usa o Authfachada que ajuda na autenticação manual dos usuários. Inclui oattempt método para verificar seu e-mail e senha.

Considere as seguintes linhas de código para LoginController que inclui todas as funções para autenticação -

<?php

// Authentication mechanism
namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller{
   /**
      * Handling authentication request
      *
      * @return Response
   */
   
   public function authenticate() {
      if (Auth::attempt(['email' => $email, 'password' => $password])) {
      
         // Authentication passed...
         return redirect()->intended('dashboard');
      }
   }
}