iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

Hi,大家好,昨天我們處理了密碼檢核之機制,並預留了密碼逾期的頁面重導,強制使用者於密碼到期後進行密碼變更作業,今天要將變更密碼機制完成,以完成符合所謂的資訊安全的使用者管理,那麼讓我們開始吧。

密碼強度確認

密碼的強度確認,最簡單的作法是採用正規表示法(re)進行處理

密碼的前3代檢核機制確認

    chgpwd: async(uid, pwd)=>{
        //取出資料庫中的使用者資料
        let userinfo = await getUser(uid)
        let pwds = []
        if(userinfo.pwd === sha512Str(pwd)) {
            throw new Error("新密碼不可與現有密碼相同,請更換密碼")
        }
        if(!userinfo.pwdslist) {
            //第一次不檢查歷程直接放進去
            pwds.push(userinfo.pwd)
        } else {
            pwds = JSON.parse(userinfo.pwdslist)
            for(let i = 0; i < pwds.length; i++) {
                if(pwds[i] === sha512Str(pwd)) {
                    throw new Error("密碼與前3代相同,請更換密碼")
                }
            }
            if(pwds.length >= 3) {
                //保留次數為3次以上,刪掉第0個
                pwds.splice(0, 1)
            }
            pwds.push(userinfo.pwd)
        }
        userinfo.pwd = sha512Str(pwd)
        userinfo.pwdslist = JSON.stringify(pwds)
        //寫入資料庫
        await saveData(userinfo)
    },

說明:資料庫中以json 陣列型式紀錄前3次之密碼,驗證無誤後,清掉第一組後,加入變更前之密碼,以達到不可與前3次相同之機制,並在確次無誤後,存入資料庫

結語

我們今天完成了變更密碼之機制,所以整個使用者登入的機制已經完成了,明天預計接續完成客服表單輸入之功能,那麼我們明天再繼續吧


上一篇
使用者登入機制-續
下一篇
客服問題表單輸入功能
系列文
以vue.js + node.js 搭建一個客服填單系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言