1. 程式人生 > >Django 專案總結(4)- 使用者中心個人資訊

Django 專案總結(4)- 使用者中心個人資訊

使用者中心個人資訊

在該頁面會展示使用者名稱,手機號,郵箱,郵箱驗證狀態

修改使用者模型類,增加郵箱是否驗證狀態

  1. 進入該頁面時,前端向後端請求資料;
  2. 後端進行序列化把資料返回;
  3. 在檢視加上 permission_classes 許可權認證,只有當用戶登入後才將資料返回;



郵箱與驗證

  1. 在使用者中心,使用者可以選擇是否繫結郵箱;

  2. 使用者輸入郵箱點選儲存後,傳送請求到後端,後端儲存郵箱,需要使用者登入認證,在後端生成驗證郵箱的連結;

  3. 向用戶傳送郵件以驗證郵箱的有效性,郵件在使用 celery 進行非同步進行傳送;

  4. 使用者收到郵件,點選郵件中的連結,會跳轉到郵件驗證頁面,前端向後端傳送請求;

  5. 後端從連結中提取 token,對 token 和 token 中的資料進行驗證,

  6. 驗證成功,儲存郵箱驗證狀態,返回成功資訊;

  7. 為了避免使用者未收到驗證郵件,提供“重新發送驗證郵件”按鈕允許使用者重新發送郵件,其實就是重新再次請求傳送驗證郵件的介面;

  8. 使用者點選郵件進行驗證成功後,在使用者介面顯示已驗證。

在郵件中提供的啟用連結地址,為了區分使用者和安全考慮,使用 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字串