Flask Academy · Oppitunti

login_user, logout_user ja sessiot

Kirjaa käyttäjät sisään ja ulos sessiosta.

Oppitunti 3/413 vaihetta

login_user, logout_user ja sessiot on ilmainen Flask Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Flask Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Käyttäjän kirjautuminen

Kun salasana on tarkistettu, ilmoitat Flask-Loginille käyttäjän kirjautuneen kutsumalla login_user-funktiota. Tämä yksi kutsu määrittää session puolestasi.

from flask_login import login_user
login_user(user)

Tyypillinen kirjautumisreitti

Kirjautumisnäkymässä etsit käyttäjän, tarkistat salasanan ja kutsut sitten login_user-funktiota. Sen jälkeen ohjaat käyttäjän oikealle sivulle, kuten hallintapaneeliin.

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

Mitä login_user tallentaa

login_user ei tallenna koko oliota. Se kirjoittaa käyttäjän id-tunnisteen sessioevästeeseen, ja user_loader muodostaa käyttäjän myöhemmin uudelleen.

Muista minut

Välitä remember=True, jos haluat käyttäjän pysyvän kirjautuneena selaimen sulkemisen jälkeen. Flask-Login asettaa tällöin pitkäkestoisen evästeen sessiokohtaisen evästeen sijaan.

login_user(user, remember=True)

current_userin käyttäminen

Voit lukea current_user-arvon missä tahansa näkymässä saadaksesi kirjautuneen käyttäjän. Se on välityspalvelin, joka viittaa aina aktiivisen pyynnön käyttäjään.

from flask_login import current_user
name = current_user.username

Anonyymit käyttäjät

Jos kukaan ei ole kirjautunut, current_user on anonymous-käyttäjäolio. Sen is_authenticated-arvo on False, joten voit tehdä sen perusteella turvallisesti haarautumisen.

if current_user.is_authenticated:
    show_dashboard()

Uloskirjautuminen

Kirjaa käyttäjä ulos kutsumalla logout_user-funktiota. Se poistaa käyttäjän tunnisteen sessiosta, joten seuraava pyyntö käsittelee käyttäjän jälleen anonyymina.

from flask_login import logout_user
logout_user()

Uloskirjautumisreitti

Uloskirjautumisnäkymä on pieni: kutsu logout_user-funktiota ja ohjaa sitten käyttäjä etusivulle. Salasanaa ei tarvitse tarkistaa, vaan ainoastaan sessio tyhjennetään.

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

Salainen avain vaaditaan

Session tiedot kulkevat allekirjoitetussa evästeessä, joten sovellus tarvitsee SECRET_KEY-avaimen. Ilman sitä login_user aiheuttaa virheen eikä mikään toimi.

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

Sessio on käyttäjäkohtainen

Jokainen selain saa oman allekirjoitetun cookie-evästeensä, joten kaksi käyttäjää eivät koskaan näe toistensa sessioita. Flask-Login pitää ne siististi erillään.

Tervehdi käyttäjää

Voit käyttää current_user-arvoa myös mallineissa, koska Flask-Login lisää sen niiden käyttöön. Näin henkilökohtaisen navigointipalkin tekeminen onnistuu yhdellä rivillä.

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

Pikatarkistus

Käyttäjä napsauttaa Log out -painiketta. Mikä kutsu päättää hänen sessionsa?

Kertaus

Nyt kutsut login_user-funktiota salasanan tarkistamisen jälkeen, luet current_user-arvon mistä tahansa ja päätät session kutsumalla logout_user-funktiota. SECRET_KEY sitoo kaiken yhteen. 🔑

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”login_user, logout_user ja sessiot” ilmainen?

Kyllä – oppitunnin ”login_user, logout_user ja sessiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Flask Academy-kurssin, päivitä CoddyKit PROhon. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”login_user, logout_user ja sessiot”?

Kirjaa käyttäjät sisään ja ulos sessiosta. Harjoittelet Flask Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Flask Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Flask Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”login_user, logout_user ja sessiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Flask Academy-oppitunnilla?

Kyllä. Jokainen Flask Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Tiivistä salasanat, älä tallenna selväkielisinä
  2. User Loader ja UserMixin
  3. login_user, logout_user ja sessiot
  4. Suojaa view't login_requiredilla
← Takaisin: Flask Academy