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.
In questo tutorial, inizieremo fin dall'inizio creando la nostra app Laravel usando Composer e poi:
Prima di tutto, creiamo l'applicazione usando Composer.
$ compositore crea-progetto laravel / laravel myapp
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' => ',...
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: routesDal momento che sono state create nuove classi, è necessario aggiornare i file di caricamento automatico.
$ composer dump-autoloadPronto 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_passwordPer accedere all'utente corrente possiamo chiamare
Confidate :: utente ()
. Pertanto, per mostrare il nome dell'utente corrente, è necessario sostituire il contenuto diapp / 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 ilconfig / 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 inapp / views / utenti
comesignup.blade.php
con il seguente contenuto:Autenticazione dell'utente con Confide Importa twitter bootstrap e imposta alcuni stiliIscriviti
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 stiliConfide :: user () -> username
e-mail: Confide :: user () -> emailOra che abbiamo applicato il filtro a tutte le rotte all'interno
Userpanel
. Avremo bisogno di un piccolo aggiustamento per assicurare che ilauth
filtro reindirizza l'utente all'URL di accesso corretto. modificareapp / filters.php
in linea 46 per sostituirereturn 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 ilConfideUser
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.