Laravel - Porte utente ospite

La funzione Guest User Gates è un componente aggiuntivo dell'ultima versione 5.7 rilasciata a settembre 2018. Questa funzione viene utilizzata per avviare il processo di autorizzazione per utenti specifici.

In Laravel 5.6, c'era una procedura in cui tornava falseper utenti non autenticati. In Laravel 5.7, possiamo consentire agli ospiti di eseguire i controlli di autorizzazione utilizzando lo specificonullable digitare il suggerimento all'interno del controller specificato come indicato di seguito -

<?php
Gate::define('view-post', function (?User $user) {
   // Guests
});

Spiegazione del codice

Utilizzando un file nullabletipo hint la variabile $ user sarà nulla quando un utente guest viene passato al gate. È quindi possibile prendere decisioni sull'autorizzazione dell'azione. Se si consentono i tipi nullable e si restituisce true, l'ospite avrà l'autorizzazione. Se non utilizzi un suggerimento di tipo nullable, gli ospiti riceveranno automaticamente la risposta 403 per Laravel 5.7, che viene visualizzata di seguito:

La differenza tra l'errore 403 e 404 è che 404 viene visualizzato quando l'utente tenta di accedere alla risorsa o all'URL sconosciuto e l'errore 403 come menzionato nell'istantanea sopra viene visualizzato se l'utente non autorizzato accede al sito Web.