摘要:目前我們的已經(jīng)完成了注冊和登錄功能,當(dāng)?shù)卿洺晒χ螅撁嫣D(zhuǎn)到首頁,此時我們需要保存用戶的登錄狀態(tài),不管頁面如何跳轉(zhuǎn),除非用戶自己注銷登錄。
目前我們的demo已經(jīng)完成了注冊和登錄功能,當(dāng)?shù)卿洺晒χ螅撁嫣D(zhuǎn)到首頁,此時我們需要保存用戶的登錄狀態(tài),不管頁面如何跳轉(zhuǎn),除非用戶自己注銷登錄。
如之前所說,我們可以用session來保存用戶登錄的這個狀態(tài),當(dāng)?shù)卿涷炞C成功的時候,將當(dāng)前登錄的username存入session,并設(shè)置session的permanent屬性為True(這樣下次打開瀏覽器仍然是登錄的狀態(tài)),這一步很簡單,login函數(shù)修改如下:
@app.route("/login/", methods=["GET", "POST"]) def login(): #...省略... if "成功" in message: session["username"] = username session.permanent = True return redirect(url_for("home")) #...省略...
登錄成功之后,發(fā)現(xiàn)導(dǎo)航條右邊的文字還是這個鬼樣子:
我們需要修改它,設(shè)計成登錄成功之后,這一部分顯示用戶名和注銷按鈕。用 9.注冊和登錄功能實現(xiàn)(2)—— 注冊與登錄的錯誤提示 提到的@app.context_processor上下文管理器,把當(dāng)期登錄的用戶名傳遞給html:
@app.context_processor def my_context_processor(): user = session.get("username") if user: return {"login_user": user} return {}
然后在base.html中修改導(dǎo)航條原先登錄和注冊的部分如下:
{% if login_user %}
此時,登錄成功后,導(dǎo)航條就變成如下樣式了:
上面的代碼,我們把注銷關(guān)聯(lián)到了一個logout視圖函數(shù),這個也很好寫,用session的clear方法清除session中的內(nèi)容,然后跳轉(zhuǎn)回首頁:
@app.route("/logout/") def logout(): session.clear() return redirect(url_for("home"))
用戶名的那部分,我們后續(xù)設(shè)計一個可以更改頭像和修改密碼的頁面,點(diǎn)擊用戶名跳轉(zhuǎn)過去,這里就先寫一個#。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41265.html
摘要:用存儲用戶路由守衛(wèi)路由中設(shè)置的字段就在當(dāng)中每次跳轉(zhuǎn)的路徑登錄狀態(tài)下訪問頁面會跳到如果沒有訪問任何頁面。一個簡單的保存登錄狀態(tài)的小。 Vue項目中實現(xiàn)用戶登錄及token驗證 先說一下我的實現(xiàn)步驟: 使用easy-mock新建登錄接口,模擬用戶數(shù)據(jù) 使用axios請求登錄接口,匹配賬號和密碼 賬號密碼驗證后, 拿到token,將token存儲到sessionStorage中,并跳轉(zhuǎn)到首...
摘要:當(dāng)用戶注銷或退出時,釋放連接,清空對象中的登錄狀態(tài)。聊天管理模塊系統(tǒng)的核心模塊,這部分主要使用框架實現(xiàn),功能包括信息文件的單條和多條發(fā)送,也支持表情發(fā)送。描述讀取完連接的消息后,對消息進(jìn)行處理。 0.前言 最近一段時間在學(xué)習(xí)Netty網(wǎng)絡(luò)框架,又趁著計算機(jī)網(wǎng)絡(luò)的課程設(shè)計,決定以Netty為核心,以WebSocket為應(yīng)用層通信協(xié)議做一個互聯(lián)網(wǎng)聊天系統(tǒng),整體而言就像微信網(wǎng)頁版一樣,但考慮...
摘要:系統(tǒng)從認(rèn)證中心得到校驗成功的結(jié)果后,則可以認(rèn)為用戶已登錄。認(rèn)證中心發(fā)現(xiàn)用戶未登錄沒有,將用戶引導(dǎo)至登錄界面。用戶提交登錄信息到認(rèn)證中心。 簡單登錄 登錄流程 首先讓我們分析一下一個簡單的登錄是怎么實現(xiàn)的。 一個簡單的登錄流程 用戶輸入url訪問站點(diǎn),接受用戶請求后判斷用戶是否已經(jīng)登錄,若未登錄則跳轉(zhuǎn)到登錄頁面 用戶訪問登錄頁面,填寫并提交登錄表單 web應(yīng)用對登錄表單進(jìn)行驗證,若...
摘要:在保存登錄狀態(tài)與注銷功能這篇文章中,我們使用了來保存,實際上默認(rèn)的功能,是客戶端,與之相對的是服務(wù)器端。今天我們來實現(xiàn)服務(wù)器端,原理很簡單,實際上在編程實現(xiàn)和這篇文章中我們已經(jīng)做過了。現(xiàn)在我們用數(shù)據(jù)庫來保存,并為其設(shè)置有效期。 在11.保存登錄狀態(tài)與注銷功能這篇文章中,我們使用了session來保存username,實際上Flask默認(rèn)的session功能,是客戶端session(cl...
閱讀 2187·2021-11-18 10:02
閱讀 3289·2021-11-11 16:55
閱讀 2694·2021-09-14 18:02
閱讀 2426·2021-09-04 16:41
閱讀 2056·2021-09-04 16:40
閱讀 1165·2019-08-30 15:56
閱讀 2213·2019-08-30 15:54
閱讀 3161·2019-08-30 14:15