Inloggning
Last updated
Was this helpful?
Last updated
Was this helpful?
Ett exempel pÄ ett inloggningsförfarande genom webbplats.
Den högra delen Àr extra information kring sÀkerhet.
Hur ska vi utföra detta.
Node, express och mysql, se tidigare kapitel.
Du behöver skapa en route för login, med en tillgörande view. Denna view ska visa ett formulÀr. Ett formulÀr bestÄr av form taggen, denna krÀver en metod(GET eller POST) samt en action. Form elementets action attribut bestÀmmer vars formulÀret skickar data nÀr det skickas(submit).
I form elementet sÄ anvÀnder vi olika former av input element för att hantera data frÄn anvÀndaren. HÀr kan en första validering utföras för att öka sÀkerheten, som typ av fÀlt.
Undersök den data som skickas frÄn ett HTML formulÀr i webblÀsarens utvecklarverktyg. Du hittar denna request under Network fliken.
En anvÀndartabell behöver inte sÄ mycket för att fungera. I ett mer utökat system sÄ kan vi behöva spara information för email-verifiering och sÄ vidare. Det Àr god praxis att spara timestamps kopplat till kontot av sÀkerhetsskÀl.
Notera att bÄde anvÀndarnamn och email Àr unika.
Sker som tidigare med databasmodellen frÄn tidigare kapitel.
Din login route behöver ta emot och hantera en post request frÄn login formulÀret. Den data som routen tar emot sparas i req.body.
AnvÀndaren kommer att skicka sitt lösenord i klartext till din server(ett problem med HTTP som ÄtgÀrdats med HTTPS). Det lösenordet Àr nÄgot som vi aldrig ska spara av sÀkerhetsskÀl.
Spara aldrig lösenord i klartext i databasen.
Bcrypt finns som ett node paket.
Förfarandet blir sedan att.
Ta emot anvÀndarens lösenord.
Omvandla lösenordet till en hash.
HÀmta den sparade hashen av lösenordet frÄn databasen.
JÀmföra de tvÄ, om det stÀmmer loggas anvÀndaren in.
För detta sÄ anvÀnder du sessions eller kakor.
Skapa en anvÀndare, create.
Logga in en anvÀndare, read.
Uppdatera en anvÀndare, update.
Ta bort en anvÀndare, delete.
CRUD kan kopplas till ett antal SQL frÄgor som utför detta.
Alla frÄgorna kan köras genom databasmodellen vi anvÀnt och vÀrden bör anvÀnds med förberedda frÄgor, det vill sÀga anvÀnda platshÄllare ? för vÀrden.
De vÀrden som anvÀnds i SQL frÄgorna kommer i de flesta fall frÄn HTML formulÀr. FormulÀren lÄter anvÀndare mata in data. Servern tar sedan emot data, validerar, tvÀttar och gör sedan nÄgot med den.
I express tas requesten emot. FormulÀr visas med GET och data tas emot med POST.
Skapa ett login system.
LÄt anvÀndaren skriva korta bloggar/inlÀgg/tweets eller vad det nu kan vara.
InlÀgget ska vara kopplat till userns id.
Gör sÄ att en anvÀndares inlÀgg visas pÄ deras "hem" sida.
Andra anvÀndare, som Àr inloggade, ska kunna lÀsas andras "hem".
Skapa funktionen för att kommentera pÄ andras inlÀgg.
Bra övning i databasdesign och JOIN i SQL.
Kopiera inte slutprodukten, dÄ lÀr du dig inget, gÄ igenom de commits som Àr gjorda för att se vad du har missat och kan behöva.
Det som sparas i databasen ska vara en hash, det vill sÀga en strÀng med olika tecken. För att hasha lösenordet anvÀnds en algoritm som kallas för . Bcrypt anses vara sÀker för detta.
Bcrypt paketet anvÀnder ett par metoder för det, se .
Konfigurationsanvisningar finns pÄ paketets sida, . För att sÀtta en session parameter sÄ anvÀnds request objeketet i express.
Ett login-system innehÄller oftast alla delar av create, read, update, delete(CRUD). Àr en akronym för de vanliga operationerna som utförs nÀr data sparas, i ett login-system blir det.
Databasdesignen finns .
Styla slutligen alltihopa med Bootstrap och SASS. .