flask中利用session實現用戶記住密碼


“記住密碼”的實質,實際上就是把cookie的有效期設置的長一點,當用戶沒有選擇記住密碼時,cookie的有效期為會話結束,選擇記住密碼后,會根據服務器的設置延長cookie的有效期,默認是31天。在flask框架中,服務器不會保存用戶的會話,而是把會話加秘后放在cookie里面返回給用戶。所以,可以通過在session中放置一個標識用戶的字段,實現服務器記住用戶的功能。

0x01:前端登陸頁面

這是一個簡單的前台登陸頁面,在賬號密碼的下面用戶可選擇是否記住密碼,實質上,它就是一個input標簽,類型是check的復選框類型,它有被開發人員設置了一個默認值,如果用戶沒有勾選‘記住登錄名’,則這個input標簽里面就沒有值,為None,如果用戶勾選的‘記住登錄名’,則這個input標簽里面的值就為設置的默認值

0x02:后台HTML代碼

1             <div id="remember">
2                 <span style="margin-left: 10px; color: green"><input type="checkbox" name="remember" value="1">記住登錄名</span>
3                 <a href="{{ url_for('forget') }}" style="float: right;margin-top:1px">忘記密碼?</a>
4             </div>

 

第二行的input標簽就是‘記住登錄名’這一部分了,它的默認值是‘1’,input的名字是remember,如果用戶沒有選擇‘記住登錄名’,則remember為none,若勾選了,就把‘1’賦值給remember

0x03:服務器端設置cookie時效

1 if remember == '1':
2     session.permanent = True
3     session['user_id'] = user.id
4     return redirect(url_for('index'))
5 else:
6     session['user_id'] = user.id
7     return redirect(url_for('index'))

 

第一行,我們通過remember的值判斷用戶是否勾選的‘記住登錄名’,人后根據這兩種情況分別設置cookie的時效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM