Bygg påloggingen for vår Ruby on Rails -applikasjon

Innholdsfortegnelse
I våre webapplikasjoner vil vi nesten alltid måtte registrere brukere, på denne måten vil vi ha medlemmer i våre butikker, blogger, virtuelle fellesskap, administrative systemer, etc. For at registreringen skal være effektiv og nyttig, må disse brukerne kunne autentisere seg selv for å kunne skrive inn deler som er opprettet for registrerte brukere, for eksempel å se profilen deres, administrere meldingene sine, foreta kjøp, skrive artikler osv.
Innloggingen er den viktige delen av applikasjonen vår, den lar oss skille det private fra det offentlige, det lar oss vite hvilken profil hver bruker som går inn har og dermed bestemme hva de kan se eller ikke.
For at appen vår skal ha denne funksjonaliteten, trenger vi en handling i kontrolleren som lar oss autentisere brukeren ved å sammenligne brukernavnet og passordet hans med det vi har i databasen, så når dette skjer må vi lagre noen verdier i økten som gjør at vi til enhver tid vet hvem som er logget inn og hvilken profil og tillatelser de har, selvfølgelig avhenger sistnevnte mye av utformingen av applikasjonen vår.
Nå må vi vite hvordan vi genererer en kontroller og alt relatert til konsollen skinner, så vi vil direkte se kontrolleren og dens innhold, samt logikken bak den:
 def login hvis request.get? økt [: user_id] = null @user = User.new else @user = User.new (params [: user]) logged_in_user = @user.try_to_login hvis logged_in_user session [: user_id] = logged_in_user.id redirect_to (: action => "index") else flash [: notice] = "Ugyldig bruker / passordkombinasjon" slutten slutten 

I den første delen med IF -betingelsen til vår kontrollør ber vi om be omHvis det er GET, renser vi økten og lager et nytt brukertypeobjekt, på denne måten forbereder vi måten å gå inn på. Hvis ikke FÅ be om vi antar at det er POST, så sender vi formparametrene til objektet vårt og kaller deretter metoden try_to_login, denne metoden gjør er å sammenligne brukernavn og passord med det vi har i databasen.
Til slutt med en annen betinget ser vi om brukeren faktisk var logget inn, vi tildeler økter verdier og deretter omdirigerer vi brukeren til indeksen, ellers viser vi en feil med en melding.
Som vi så i kontrolleren kaller vi noen metoder som lar oss gjøre de tilsvarende sammenligningene, nå er det vi trenger å lage disse metodene, og for dette skal vi gjøre det i modellen, la oss se hva den inneholder og hvorfor den inneholder den:
 def self.login (navn, passord) hashed_password = hash_password (passord || "") finn (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) slutt 

Metoden Logg Inn det er enkelt, det mottar to parametere: navn og passord, så spør det mot databasen for disse verdiene.
Metoden try_to_login, det den gjør er å påkalle påloggingsmetoden, på denne måten kan vi gi et svar til brukeren hvis den eksisterer eller ikke i databasen vår.
Til slutt lager vi vårt syn og handlingene det vil bruke, i filen app / visninger / pålogging vi vil lage vår login.rhtml og også vår index.rhtml, den første er ganske lik brukerens konstruksjon, og den andre vil vi se nå.

Totalt antall bestillinger i systemet:

Bestillinger venter på forsendelse:


Som vi kan se, er det ganske enkelt, det vil ganske enkelt vise brukerens ventende bestillinger, for dette i kontrolleren må vi innlemme de nødvendige handlingene:
 def index @total_orders = *****. count @pending_orders = *****. count_pending end 

Der ville vi ha sett resultatet.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave