Django 專案總結(4)- 使用者中心個人資訊
阿新 • • 發佈:2018-11-28
使用者中心個人資訊
在該頁面會展示使用者名稱,手機號,郵箱,郵箱驗證狀態
修改使用者模型類,增加郵箱是否驗證狀態
- 進入該頁面時,前端向後端請求資料;
- 後端進行序列化把資料返回;
- 在檢視加上 permission_classes 許可權認證,只有當用戶登入後才將資料返回;
郵箱與驗證
-
在使用者中心,使用者可以選擇是否繫結郵箱;
-
使用者輸入郵箱點選儲存後,傳送請求到後端,後端儲存郵箱,需要使用者登入認證,在後端生成驗證郵箱的連結;
-
向用戶傳送郵件以驗證郵箱的有效性,郵件在使用 celery 進行非同步進行傳送;
-
使用者收到郵件,點選郵件中的連結,會跳轉到郵件驗證頁面,前端向後端傳送請求;
-
後端從連結中提取 token,對 token 和 token 中的資料進行驗證,
-
驗證成功,儲存郵箱驗證狀態,返回成功資訊;
-
為了避免使用者未收到驗證郵件,提供“重新發送驗證郵件”按鈕允許使用者重新發送郵件,其實就是重新再次請求傳送驗證郵件的介面;
-
使用者點選郵件進行驗證成功後,在使用者介面顯示已驗證。
在郵件中提供的啟用連結地址,為了區分使用者和安全考慮,使用 itdangerous 對 user_id 和 email 資料進行處理,生成 token,作為引數,拼接在連結中,
Django 內建傳送郵件功能
Django 中內建了郵件傳送功能,但是 Django 沒有傳送郵件的伺服器,使用 163 伺服器來發送,在 163 設定中開啟 SMTP 服務,在配置檔案中設定郵箱的配置資訊,
在 django.core.mail 模組提供了 send_mail 來發送郵件。
send_mail(subject, message, from_email, recipient_list,html_message=None)
- subject 郵件標題
- message 普通郵件正文, 普通字串
- from_email 發件人
- recipient_list 收件人列表
- html_message 多媒體郵件正文,可以是html字串