Flask Academy · leksjon

login_user, logout_user og sesjoner

Logg brukere inn og ut av en sesjon.

Leksjon 3 av 413 trinn

login_user, logout_user og sesjoner er en gratis leksjon i Flask Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Flask Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Flask Academy inneholder totalt 4 leksjoner.

Logg inn en bruker

Når et passord er godkjent, forteller du Flask-Login at brukeren er logget inn ved å kalle login_user. Dette ene kallet setter opp sesjonen for deg.

from flask_login import login_user
login_user(user)

En typisk innloggingsrute

I en innloggingsvisning finner du brukeren, bekrefter passordet og kaller deretter login_user. Etterpå omdirigerer du brukeren til en faktisk side, for eksempel kontrollpanelet.

if user and user.check_password(pw):
    login_user(user)
    return redirect(url_for("dashboard"))

Dette lagrer login_user

login_user lagrer ikke hele objektet. Den skriver brukerens id til sesjonsinformasjonskapselen, og user_loader bygger opp brukeren igjen senere.

Husk meg

Send remember=True for å holde brukeren innlogget etter at nettleseren lukkes. Flask-Login setter da en informasjonskapsel med lang levetid i stedet for en som bare varer i sesjonen.

login_user(user, remember=True)

Få tilgang til current_user

Du kan lese current_user hvor som helst i en visning for å hente den innloggede personen. Det er en proxy som alltid peker på brukeren for den aktive forespørselen.

from flask_login import current_user
name = current_user.username

Anonyme brukere

Hvis ingen er logget inn, er current_user et anonymt brukerobjekt. is_authenticated er False, så du kan trygt bruke dette i en betingelse.

if current_user.is_authenticated:
    show_dashboard()

Logg ut

For å logge ut en bruker kaller du logout_user. Den fjerner brukerens ID fra sesjonen, slik at den neste forespørselen igjen behandler brukeren som anonym.

from flask_login import logout_user
logout_user()

En utloggingsrute

En utloggingsvisning er svært liten: kall logout_user og omdiriger deretter til startsiden. Det er ikke noe passord å kontrollere, bare sesjonen som skal tømmes.

@app.route("/logout")
def logout():
    logout_user()
    return redirect(url_for("index"))

Hemmelig nøkkel kreves

Sesjoner ligger i en signert informasjonskapsel, så appen trenger en SECRET_KEY. Uten den utløser login_user en feil, og ingenting fungerer.

app.config["SECRET_KEY"] = "a-long-random-value"

Sesjoner er knyttet til brukeren

Hver nettleser får sin egen signerte informasjonskapsel, så to brukere ser aldri hverandres sesjoner. Flask-Login holder dem tydelig adskilt.

Hils på brukeren

I maler kan du også bruke current_user, siden Flask-Login injiserer den. Dermed kan du lage en personlig navigasjonsmeny på én linje.

<p>Hello, {{ current_user.username }}</p>

Hurtigsjekk

En bruker klikker på Logg ut. Hvilket kall avslutter sesjonen?

Oppsummering

Du bruker nå login_user etter en passordkontroll, leser current_user hvor som helst og kaller logout_user for å avslutte en sesjon. En SECRET_KEY binder det hele sammen. 🔑

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «login_user, logout_user og sesjoner» gratis?

Ja – hele teksten i «login_user, logout_user og sesjoner» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Flask Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Flask Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «login_user, logout_user og sesjoner»?

Logg brukere inn og ut av en sesjon. Du øver på Flask Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Flask Academy?

Ingen tidligere erfaring er nødvendig. Flask Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «login_user, logout_user og sesjoner»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Flask Academy-leksjonen?

Ja. Alle Flask Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hash passord – lagre aldri klartekst
  2. User Loader og UserMixin
  3. login_user, logout_user og sesjoner
  4. Beskytt views med login_required
← Tilbake til Flask Academy