iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Modern Web

暑假旅程之自學Django系列 第 26

[Day26] 重設密碼API – views

  • 分享至 

  • xImage
  •  

哈囉大家好,今天要做的是重設密碼API,先附上我的程式碼~~

程式碼

@csrf_protect
def reset(request): #重設密碼
    if request.method == "POST":
        try:
            data = json.loads(bytes.decode(request.body,"utf-8"))
            old_pw = data['old_password']
            if request.user.is_authenticated is True and request.user.check_password(old_pw) is True:
                id = request.user.id
                user = UserProfile.objects.get(id = id)
                new_pw = data['password']
                user.set_password(new_pw)
                user.save()
                message = {"status":"0"}
            else:
                message = {"status":"1"}
        except Exception as e:
            print(e)
            message = {"status":"1"}
    return JsonResponse(message)

想法及介紹function

這邊說說我的想法,因為重設密碼的選項,通常是帳號登入之後,所以這邊我首先是判斷帳號是否為已驗證,再來是再檢查密碼一次if request.user.is_authenticated is True and request.user.check_password(old_pw) is True:,如果已驗證那代表已登入,舊密碼也再次確認過了,這時候因為是登入的狀態,所以我們可以用request.user.id這樣的方式查詢使用者的id,我拿著目前登入使用者的id,去後台查詢、比對,找目前登入使用者在後台的資料user = UserProfile.objects.get(id = id),然後重新設定密碼user.set_password(new_pw),並儲存user.save(),大致上的是這樣~~~ 。

我們在views寫完邏輯,老樣子,相信你一定知道明天要幹嘛了,那麼我們就明天見啦~~ ㄅㄅ


上一篇
[Day25] 找回密碼API – views
下一篇
[Day27] 找回密碼API、重設密碼API – urls、測試階段
系列文
暑假旅程之自學Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言