Impostazione dell'autenticazione utente in Laravel tramite Confide

L'autenticazione dell'utente fa parte di quasi tutte le applicazioni web. Sebbene sia comune, un aspetto più approfondito mostra che non è così semplice come potrebbe sembrare. Ricorda che la convalida, il recupero della password e la conferma dell'email sono fondamentali per qualsiasi modulo di autenticazione decente.

Confide è una soluzione di autenticazione per Laravel realizzata per ridurre il lavoro ripetitivo che coinvolge la gestione degli utenti. È un approccio DRY su funzionalità come la creazione di account, accesso, disconnessione, conferma via e-mail, reimpostazione della password, ecc.

Sin dalle prime versioni, Confide ha sempre avuto una buona adozione tra gli sviluppatori e una vasta presenza nei progetti Laravel. Con un recente aggiornamento, il pacchetto è ora compatibile con Laravel 4.2, che è l'ultima versione stabile di Laravel al momento della stesura di questo articolo.

Cosa stiamo andando a fare

In questo tutorial, inizieremo fin dall'inizio creando la nostra app Laravel usando Composer e poi:

  • creare un modulo di iscrizione con un set completo di regole di convalida
  • un modulo di accesso con l'opzione "Ho dimenticato la mia password" che invierà un link per l'utente per ridefinire la sua password
  • utilizzare i filtri Laravel per consentire solo agli utenti registrati di accedere a un percorso specifico.

Creare l'applicazione

Prima di tutto, creiamo l'applicazione usando Composer.

$ compositore crea-progetto laravel / laravel myapp

Installazione di Confide

Ora, con all'interno della directory del progetto, modifica il file richiedere chiave di composer.json file e includi l'entrata di confidenza:

"require": "laravel / framework": "~ 4.2", "zizaco / confide": "~4.0@dev",

Quindi esegui l'aggiornamento di compositore sulla nostra nuova dipendenza:

$ compositore aggiornare zizaco / confide

Nel config / app.php del nostro progetto, aggiungi 'Zizaco \ Confide \ ServiceProvider' alla fine dell'array dei provider:

... 'providers' => array ('Illuminate \ Foundation \ Providers \ ArtisanServiceProvider', 'Illuminate \ Auth \ AuthServiceProvider', ... 'Zizaco \ Confide \ ServiceProvider',), ... 

Aggiungi anche 'Confide' => 'Zizaco \ Confide \ Facade' alla matrice di alias nello stesso file:

... 'aliases' => array ('App' => 'Illuminate \ Support \ Facades \ App', 'Artisan' => 'Illuminate \ Support \ Facades \ Artisan', ... 'Confide' => 'Zizaco \ Confide \ Facade ',),

Impostare il indirizzo e nome nel config / mail.php. Questa configurazione verrà utilizzata per inviare e-mail di conferma e reimpostazione della password agli utenti. Per questo tutorial, puoi usare il tuo server SMTP personale per far funzionare le cose

Ad esempio, se utilizzi Gmail puoi effettuare le seguenti operazioni:

'driver' => 'smtp', 'host' => 'smtp.gmail.com', // a scopo di test 'da' => array ('address' => '[email protected]', 'name' => 'MyApp'), ... 'username' => '[email protected]', 'password' => ',... 

Modello utente

Ora genera le migrazioni Confide eseguendo:

$ php artisan confide: migrazione $ php artisan migrate

Questo imposterà una tabella contenente e-mail, parola d'ordine, remember_token, codice di conferma e confermato colonne. Questi sono i campi predefiniti necessari per Confide. Sentiti libero di aggiungere più colonne al tavolo più tardi.

Sostituisci tutto il codice in app / modelli / User.php a:

 

Zizaco \ Confide \ ConfideUser tratto si prenderà cura della maggior parte dei comportamenti del modello utente.

UsersController e Routes

Confide contiene uno strumento generatore che creerà un controller e scriverà i percorsi per noi. Per creare il UsersController e per registrare i percorsi eseguiamo questi comandi:

$ php artisan confide: controller $ php artisan confide: routes

Dal momento che sono state create nuove classi, è necessario aggiornare i file di caricamento automatico.

$ composer dump-autoload

Pronto all'uso

Abbiamo chiuso! La nostra applicazione ora ha tutte le funzionalità che Confide offre. Eseguire il server delle applicazioni chiamando servire php artigianale nel terminale.

Il seguente OTTENERE percorsi sono disponibili nella nostra applicazione:

http: // localhost: 8000 / users / create http: // localhost: 8000 / users / login http: // localhost: 8000 / users / forgot_password

Per accedere all'utente corrente possiamo chiamare Confidate :: utente (). Pertanto, per mostrare il nome dell'utente corrente, è necessario sostituire il contenuto di app / views / hello.php con:

    Autenticazione dell'utente con Confide   

Ciao Confide

Ciao

Ora vai avanti e accedi http: // localhost: 8000 / utenti / creano per creare il nostro primo utente. Riceverai un'email di conferma subito dopo aver inviato il modulo (se hai riempito il config / mail.php con i valori corretti). Accedi e vedrai il nome utente sullo schermo.

Miglioramento delle immagini

Le forme predefinite di Confide sono compatibili con Bootstrap. Quindi non essere intimidito dalla "bruttezza" di loro su una pagina senza CSS. Modifica il controller generato da Confide (UserController.php) e aggiornare il metodo di creazione per:

 

Quindi la nostra applicazione renderà la vista users.signup. Creiamo questa vista in app / views / utenti come signup.blade.php con il seguente contenuto:

    Autenticazione dell'utente con Confide  Importa twitter bootstrap e imposta alcuni stili      

Iscriviti

Esegue il rendering del modulo di iscrizione di Confide Confide :: makeSignupForm () -> render ();

Dopo questo, avremo un risultato molto più elegante nel modulo di creazione dell'utente http: // localhost: 8000 / user / creare:

Non è necessario utilizzare i moduli generati da Confide. È possibile creare la propria vista che invia i dati al INVIARE itinerari.

Limitazione dell'accesso

Aperto app / routes.php e aggiungi il codice sotto alla fine del file:

// Dashboard route Route :: get ('userpanel / dashboard', function () return View :: make ('userpanel.dashboard');); // Applica il filtro di autenticazione ai percorsi all'interno di admin / Route :: when ('userpanel / *', 'auth');

Crea il file di visualizzazione app / views / Userpanel / dashboard.blade.php:

    Autenticazione dell'utente con Confide  Importa twitter bootstrap e imposta alcuni stili      

Confide :: user () -> username

e-mail: Confide :: user () -> email

Ora che abbiamo applicato il filtro a tutte le rotte all'interno Userpanel. Avremo bisogno di un piccolo aggiustamento per assicurare che il auth filtro reindirizza l'utente all'URL di accesso corretto. modificare app / filters.php in linea 46 per sostituire return Redirect :: guest ('login'); con:

... return Redirect :: guest ('users / login'); ... 

Fatto ciò, il Userpanel / cruscotto la pagina sarà disponibile solo per gli utenti che hanno effettuato l'accesso all'applicazione. Il filtro reindirizzerà gli utenti ospiti al modulo di accesso e quindi tornerà alla dashboard dopo aver effettuato l'accesso.

Conclusione

È possibile notare che siamo stati in grado di impostare rapidamente l'autenticazione utente per la nostra app. Inoltre, il controller, la migrazione e le rotte generate possono essere modificati per personalizzare il modo in cui gestiremo ogni dettaglio.

Non ci siamo concentrati molto sul ConfideUser tratto, ma credo sia importante chiarire le cose. Una volta che il tuo modello utilizza il ConfideUser caratteristica, non è necessario preoccuparsi di implementare la logica di base. Allo stesso tempo, puoi comunque sovrascrivere i metodi e personalizzarli, se necessario.

Possiamo dire che Confide è un approccio DRY all'autenticazione degli utenti. Offre la comodità di avere la funzionalità immediata, pur consentendo un'elevata personalizzazione.

Dai un'occhiata a Confide su GitHub. Se hai avuto problemi mentre segui questo tutorial, sentiti libero di contattarmi.