Brukerautentisering er en del av nesten alle webapplikasjoner. Selv om det er vanlig, viser et dypere utseende at det ikke er så enkelt som det kan virke. Husk at validering, passordgjenoppretting og bekreftelse av e-post er avgjørende for ethvert anstendig autentiseringsskjema.
Confide er en godkjenningsløsning for Laravel laget for å redusere det repeterende arbeidet som involverer brukernes ledelse. Det er en tørr tilnærming på funksjoner som opprettelse av kontoer, logg inn, logg ut, bekreftelse via e-post, tilbakestilling av passord osv.
Siden de tidlige versjonene hadde Confide alltid god adopsjon blant utviklere og en bred tilstedeværelse i Laravel-prosjekter. Med en nylig oppdatering er pakken nå kompatibel med Laravel 4.2, som er den siste stabile utgivelsen av Laravel på tidspunktet for denne skrivingen.
I denne opplæringen begynner vi fra begynnelsen ved å lage vår Laravel-app ved hjelp av Komponist og deretter:
Først av alt, la oss lage programmet ved å bruke Komponist.
$ komponent create-project laravel / laravel myapp
Nå, med inne i prosjektkatalogen, rediger du krever
nøkkel til composer.json
fil og inkludere konfidensiell oppføring:
"krever": "laravel / framework": "~ 4.2", "zizaco / confide": "~4.0@dev",
Kjør deretter komponistoppdatering på vår nye avhengighet:
$ komponent oppdatering zizaco / confide
I config / app.php
av prosjektet vårt, legg til 'Zizaco \ betro \ tjenesteleverandøren'
til slutten av leverandørene:
... 'providers' => array ('Illuminate \ Foundation \ Providers \ ArtisanServiceProvider', 'Illuminate \ Auth \ AuthServiceProvider', ... 'Zizaco \ Confide \ ServiceProvider',), ...
Legg også til 'Confide' => 'Zizaco \ Confide \ Facade'
til aliaser-arrayet i samme fil:
... 'aliases' => array ('App' => 'Illuminere \ Support \ Facader \ App', 'Artisan' => 'Illuminere \ Support \ Facades \ Artisan', ... 'Confide' => 'Zizaco \ Confide \ Facade ',),
Sett adresse
og Navn
i config / mail.php
. Denne konfigurasjonen vil bli brukt til å sende e-post til kontobekreftelse og passordreservering til brukerne. For denne opplæringen kan du bruke din personlige SMTP-server for å få ting til å fungere
Hvis du for eksempel bruker Gmail, kan du gjøre følgende:
'driver' => 'smtp', 'vert' => 'smtp.gmail.com', // Til testformål 'fra' => array ('adresse' => '[email protected]', 'navn' => 'MyApp'), ... 'brukernavn' => '[email protected]', 'passord' => ',...
Nå generer Confide-migrasjonene ved å kjøre:
$ php artisan confide: migrering $ php artisan migrere
Dette vil sette opp et bord som inneholder e-post
, passord
, remember_token
, bekreftelseskode
og bekreftet
kolonner. Dette er standardfeltene som trengs for Confide. Du er velkommen til å legge til flere kolonner i tabellen senere.
Erstatt all koden i app / modeller / User.php
til:
Zizaco \ betro \ ConfideUser
Egenskapen tar seg av de fleste oppføringene i brukermodellen.UsersController and Routes
Confide inneholder et generatorverktøy som vil skape en kontroller og skrive ruter for oss. Å opprette
UsersController
og for å registrere ruter la oss kjøre disse kommandoene:$ php artisan confide: controller $ php artisan confide: ruterSiden nye klasser er opprettet, må vi oppdatere autoload-filene.
$ komponent dump-autoloadKlar til bruk
Vi er ferdige! Vår søknad har nå alle funksjonene som Confide tilbyr. Kjør programserveren ved å ringe
php artisan tjene
i terminalen.Følgende
FÅ
ruter er tilgjengelige i vår søknad:http: // localhost: 8000 / users / create http: // localhost: 8000 / brukere / login http: // localhost: 8000 / users / forgot_passwordFor å få tilgang til den nåværende brukeren kan vi ringe
Betro :: bruker ()
. Derfor, for å vise navnet på den nåværende brukeren, må vi erstatte innholdet avapp / visninger / hello.php
med:
Brukerauth med Confide Hei Confide
Hei
Gå nå og få tilgang
http: // localhost: 8000 / brukere / opprette
å skape vår første bruker. Du vil motta en bekreftelses-epost rett etter at du har sendt inn skjemaet (hvis du har fyltconfig / mail.php
med de riktige verdiene). Logg inn og du vil se brukernavnet på skjermen.Forbedre visuals
Standardformene til Confide er kompatible med Bootstrap. Så ikke bli skremt av "ugliness" av dem på en side uten noen CSS. Rediger kontrolleren generert av Confide (
UserController.php
) og oppdater opprettelsesmetoden til:Dermed vil vår søknad gjengi visningen
users.signup
. La oss lage denne visningen iapp / visninger / brukere
somsignup.blade.php
med følgende innhold:Brukerauth med Confide Importer twitter bootstrap og sett noen stylingMelde deg på
Gjør registreringsskjemaet til Confide Confide :: makeSignupForm () -> render ();Etter dette vil vi få et mye mer elegant resultat i brukeropprettelsesskjemaet på
http: // localhost: 8000 / bruker / lager
:Du trenger ikke å bruke skjemaene generert av Confide. Du kan lage din egen visning som sender data til
POST
ruter.Begrensning av tilgang
Åpen
app / routes.php
og legg til koden under til bunnen av filen:// Dashboard rute Route :: get ('userpanel / dashboard', funksjon () return View :: make ('userpanel.dashboard');); // Bruker auth filter til rutene i admin / Route :: når ('brukerpanel / *', 'auth');Opprett visningsfilen
app / visninger / Userpanel / dashboard.blade.php
:Brukerauth med Confide Importer twitter bootstrap og sett noen stylingConfide :: bruker () -> brukernavn
e-post: Confide :: bruker () -> emailNå som vi har brukt filteret på alle ruter innenfor
Userpanel
. Vi trenger en liten tweak for å sikre atauth
filteret omdirigerer brukeren til riktig innloggingsadresse. Redigereapp / filters.php
på nett 46 for å erstattereturnere omdirigering :: gjest ('logg inn');
med:... returnere omdirigere :: gjest ('brukere / logg inn'); ...Det gjort, den
Userpanel / dashbord
Siden vil bare være tilgjengelig for brukere som er logget inn i programmet. Filteret vil omdirigere gjestebrukere til påloggingsskjemaet og deretter tilbake til dashbordet når de er logget inn.Konklusjon
Det er mulig å merke seg at vi raskt kunne konfigurere brukerautentisering for appen vår. Den genererte kontrolleren, overføringen og rutene kan også redigeres for å tilpasse hvordan vi skal håndtere hver detalj.
Vi har ikke fokusert mye på
ConfideUser
egenskap, men jeg tror det er viktig å rydde opp ting. Når modellen din brukerConfideUser
egenskap, du trenger ikke å bekymre deg for å implementere grunnleggende logikken. Samtidig kan du fortsatt overskrive metodene og tilpasse dem, om nødvendig.Vi kan si at Confide er en tørr tilnærming til brukerautentisering. Det gir det praktiske å ha funksjonaliteten ute av boksen, samtidig som den gir høy tilpasning.
Sjekk ut Confide on GitHub. Hvis du hadde noe problem mens du fulgte denne opplæringen, kan du kontakte meg.