Användarautentisering är en del av nästan alla webbapplikationer. Även om det är vanligt, visar ett djupare utseende att det inte är så enkelt som det kan tyckas. Kom ihåg att validering, återställning av lösenord och bekräftelse av e-post är avgörande för alla anständiga autentiseringsformulär.
Confide är en autentiseringslösning för Laravel för att minska det repetitiva arbetet med användarnas hantering. Det är ett torkat tillvägagångssätt på funktioner som skapande av konton, inloggning, loggning, bekräftelse via e-post, återställning av lösenord etc..
Sedan de tidiga versionerna hade Confide alltid god adoption bland utvecklare och en bred närvaro i Laravel-projekt. Med en nyligen uppdaterad version är paketet nu kompatibelt med Laravel 4.2, vilket är den senaste stabila versionen av Laravel vid skrivets gång.
I den här handledningen börjar vi från början med att skapa vår Laravel-app med Composer och sedan:
Först av allt, låt oss skapa applikationen med hjälp av kompositören.
$ komponent skapa-projekt laravel / laravel myapp
Nu, med inuti projektkatalogen, redigerar du fordra
nyckeln till composer.json
fil och inkludera förtroendeuppgift:
"kräver": "laravel / framework": "~ 4.2", "zizaco / confide": "~4.0@dev",
Kör sedan komponistuppdatering på vårt nya beroende:
$ komponent uppdatering zizaco / confide
I config / app.php
av vårt projekt, lägg till 'Zizaco \ Confide \ ServiceProvider'
till slutet av leverantörerna array:
... 'providers' => array ('Illuminate \ Foundation \ Providers \ ArtisanServiceProvider', 'Illuminate \ Auth \ AuthServiceProvider', ... 'Zizaco \ Confide \ ServiceProvider',), ...
Lägg även till 'Confide' => 'Zizaco \ Confide \ Facade'
till aliaserna i samma fil:
... 'aliases' => array ('App' => 'Illuminera \ Support \ Fasader \ App', 'Artisan' => 'Illuminera \ Support \ Fasader \ Artisan', ... 'Confide' => 'Zizaco \ Confide \ Facade ',),
Ställ in adress
och namn
i config / mail.php
. Denna konfiguration kommer att användas för att skicka e-post till kontobekräftelse och återställning av lösenord till användarna. För denna handledning kan du använda din personliga SMTP-server för att få saker att fungera
Om du till exempel använder Gmail kan du göra följande:
'driver' => 'smtp', 'värd' => 'smtp.gmail.com', // För teständamål 'från' => array ('adress' => '[email protected]', 'namn' => 'MyApp'), ... 'användarnamn' => '[email protected]', 'password' => ',...
Skapa nu Confide-migrationerna genom att köra:
$ php artisan confide: migrering $ php artisan migrera
Detta ställer in en tabell som innehåller e-post
, Lösenord
, remember_token
, bekräftelsekod
och bekräftade
kolumner. Det här är standardfälten som behövs för Confide. Gärna lägga till fler kolumner till bordet senare.
Byt ut all kod i app / modeller / user.php
till:
Zizaco \ Confide \ ConfideUser
egenskapen tar hand om de flesta beteenden hos användarmodellen.UsersController och Routes
Confide innehåller ett generatorverktyg som skapar en kontroller och skriver ruttorna för oss. För att skapa
UsersController
och för att registrera rutterna låt oss köra dessa kommandon:$ php artisan confide: controller $ php artisan confide: rutterEftersom nya klasser har skapats måste vi uppdatera autoload-filerna.
$ komponent dump-autoloadRedo att använda
Vi är klara! Vår ansökan har nu alla funktioner som Confide erbjuder. Kör applikationsservern genom att ringa
php artisan tjäna
i terminalen.Det följande
SKAFFA SIG
rutter finns i vår ansökan:http: // localhost: 8000 / users / create http: // localhost: 8000 / användare / inloggning http: // localhost: 8000 / users / forgot_passwordFör att komma åt den nuvarande användaren kan vi ringa
Anförtro :: användare ()
. För att visa namnet på den nuvarande användaren behöver vi därför ersätta innehållet iapp / vyer / hello.php
med:
Användarauth med Confide Hej Confide
Hej
Gå nu och få tillgång till
http: // localhost: 8000 / användare / skapa
för att skapa vår första användare. Du kommer att få ett bekräftelsemeddelande direkt efter att du skickat in formuläret (om du har fyllt iconfig / mail.php
med rätt värden). Logga in och du kommer att se användarnamnet på skärmen.Förbättra visuella
Standardformerna för Confide är kompatibla med Bootstrap. Så var inte skrämd av deras "fulhet" på en sida utan någon CSS. Redigera kontrollenheten som genereras av Confide (
UserController.php
) och uppdatera skapningsmetoden till:Således kommer vår ansökan att göra visningen
users.signup
. Låt oss skapa den här vyn iapp / visningar / användare
somsignup.blade.php
med följande innehåll:Användarauth med Confide Importera twitter bootstrap och sätt några stylingBli Medlem
Ger registreringsformuläret för Confide Confide :: makeSignupForm () -> render ();Efter det kommer vi att få ett mycket mer elegant resultat i användarskapningsformuläret på
http: // localhost: 8000 / user / skapa
:Du behöver inte använda de formulär som genereras av Confide. Du kan skapa din egen vy som skickar data till
POSTA
rutter.Begränsa åtkomst
Öppna
app / routes.php
och lägg till koden nedan till botten av filen:// Dashboard-rutt Route :: get ('userpanel / dashboard', funktion () return View :: make ('userpanel.dashboard');); // Gäller auth filter till rutorna inom admin / Route :: när ('userpanel / *', 'auth');Skapa visningsfilen
app / vyer / User / dashboard.blade.php
:Användarauth med Confide Importera twitter bootstrap och sätt några stylingConfide :: användare () -> användarnamn
e-post: Confide :: användare () -> emailNu när vi har tillämpat filtret på alla rutter inom
Userpanel
. Vi behöver en liten tweak för att se till attauth
filtret omdirigerar användaren till den korrekta inloggningsadressen. Redigeraapp / filters.php
uppkopplad 46 för att ersättareturnera Omdirigering :: gäst ('inloggning');
med:... returnera omdirigering :: gäst ("användare / inloggning"); ...Det gjort, den
Userpanel / instrumentbräda
sidan är bara tillgänglig för användare som är inloggade i programmet. Filtret omdirigerar gästanvändare till inloggningsformuläret och sedan tillbaka till instrumentpanelen när de är inloggade.Slutsats
Det är möjligt att notera att vi snabbt kunde konfigurera användarautentisering för vår app. Den genererade styrenheten, migrering och rutter kan också redigeras för att anpassa hur vi hanterar varje detalj.
Vi har inte fokuserat mycket på
ConfideUser
egenskap, men jag anser att det är viktigt att rensa upp saker. När din modell använderConfideUser
egenskap, du behöver inte oroa sig för att implementera den grundläggande logiken. Samtidigt kan du fortfarande skriva över metoderna och anpassa dem, om det behövs.Vi kan säga att Confide är ett torkat tillvägagångssätt för användarautentisering. Det ger bekvämligheten med att ha funktionaliteten ute i rutan samtidigt som den tillåter hög anpassning.
Kolla in Confide på GitHub. Om du hade något problem när du följer den här handledningen, var god kontakta mig.