Skip to main content

Login (Laravel 6)

In deze les gaan we leren hoe we een login met laravel kunnen toevoegen.

Authenticatie toevoegen

We gaan in ons project een login toevoegen. Daar heeft Laravel standaard oplossingen voor. Bij oude versies van laravel konden we met één commando de authenticatie modules installeren, nu moet dat in meer stappen. Tijdens stap 2 wordt er gevraagd om de home.blade.php en app.blade.php te overschrijven. Maak eerst even kopieen van deze twee files en laat het installatie process daarna de files overschrijven. Voer de drie stappen die hieronder staan uit.

1. Instal UI standaard

composer require laravel/ui --dev

2. Create authentication UI en DB tabels.

php artisan ui vue --auth

php artisan migrate

3. Install npm

npm install

npm run dev

Check nu of je een login pagina hebt als je naar /login gaat. Als het goed is werkt je links pagina ook nog maar moet je wel naar /links gaan. Omdat het login process twee template files heeft overschrijven gaan we die weer "repareren".

Herstellen van menu

Open de nieuwe app.blade.php file en plaats het oude menu terud op de plaats waar <!-- Left Side Of Navbar --> staat in de template.

Test nu de login door t registreren en controleer of de user ook in de users tabel is opgenomen.

Om de home page naar de links pagina te routeren, voegen we een route toe.

Route::get('/', 'LinkController@index' );

Beveiligen object Links

Door de volgende code toe te voegen aan de controller van links, LinksController.php, kun je alleen nog maar bij de links als je aangelogd bent.

public function __construct() {
    $this->middleware('auth');
}

 Door het toevoegen van de authenticatie middleware aan het object links, zorgt laravel ervoor dat je eerst moet aanloggen om de controls te kunnen gebruiken.

Door de regel aan te passen in:

$this->middleware('auth')->except('index');

wordt authenticatie voor alle methods, behalve voor de index, verplicht. Je kunt dus zonder ingelogd te zijn de lijst van links zien, maar je kun de andere functies, edit, delete en dergelijke niet gebruiken zonder aan te loggen.

In plaats van except kun je ook only gebruiken. De authenticatie wordt dan alleen toegpast op de method die je specificeert.

Forms aanpassen

We gaan nu de knoppen edit en delete weghalen uit het form als de user niet is aangelogd.

Dit gaan we doen door in de index.blade.php alleen de knoppen te laten zien als je bent ingelogd.

Daarvoor hebben we de constructie:

@IF(Auth::check())
	// laat hier de knoppen edit en delete zien
@ELSE
 	// laat de knoppen niet zien, maar zorg er wel voor dat de tabel kolommen nog kloppen
@ENDIF

Verander de index.blade.php en laat de knoppen alleen zien als er een gebruiker is aangelogd.

--