NodeJs登入實現

2022-09-07 20:33:12 字數 1163 閱讀 1315

一. 使用外掛程式

1. nodejs自帶的加密外掛程式:crypto

文件:可以用來將使用者密碼加密再存入資料庫

//

隨機生成加密token的密匙,用於jwt加密密匙

let tokensecret = crypto.randombytes(16).tostring('hex'),

2. 用於生成token的外掛程式:jwt-******

文件:

//

此方式當金鑰不對會解碼失敗得到的值為undefined,可以判斷前端傳來的token是無效的

try

catch

(error)

console.log(decoded);

//=> 輸出:使用者資訊 或者 undefined

二. 註冊流程

1.  獲得使用者uid,可以直接使用賬號名,但是要保證唯一性。使用者密碼需要加密之後再存入資料庫

2.  生成新的token(token含使用者id加上金鑰通過加密演算法生成)

3.  查詢資料庫是否已經存在此使用者,如果已存在通知前端告知使用者已註冊

4. 否則將使用者資訊,加密密碼,token,token過期時間存入資料庫

三. 登入流程

1.  獲得使用者uid,使用者密碼

2.  生成新的token(token含使用者id加上金鑰通過加密演算法生成)

3.  通過uid和密碼查詢資料庫,如果找不到匹配的說明密碼或者使用者名稱錯了,告訴前端提示使用者

4. 否則找到匹配使用者了,之後更新資料庫token和token過期時間

5. 通過更新資料庫的token返回結果通知使用者是否登入成功

四. 驗證token流程(方式很多,可以在生成token和設定token過期時間有諸多選擇)

//

我採用生成的token密匙固定,token包含使用者uid,token不重新登入永不過期,這樣就不用判斷token過期時間了

//token驗證通過上面的jwt.decode此方式可以不用查詢使用者資料庫(也是token存在的意義)

1. 通過前端傳上來的token使用金鑰進行解碼,解碼失敗token無效,通知使用者重新登入

2. 解碼成功,查詢資料庫此使用者資訊

3. 判斷token是否過期,過期驗證失效

4. 沒過期token驗證成功

實現登入 Flask 實現登入功能

在大多數人學習 web 開發的路線圖中,登入功能往往是我們接觸到的第乙個功能,本文對 flask 實現登入功能做乙個簡單的介紹。需求的分析往往是實現的第一步,在對 flask 的登入功能進行編碼 demo 之前,有必要先介紹一下登入模組的功能列表和基本流程。乙個登入功能主要要實現如下幾個基本的功能點...

nodejs實現檔案上傳

前段時間在做個人專案的時候,用到了nodejs服務端上傳檔案,現在回頭把這個小結一下,作為記錄。本人上傳檔案時是基於express的multiparty,當然也可以使用connect multiparty中介軟體實現,但官方似乎不推薦使用connect multiparty中介軟體。廢話不多說,下面...

Nodejs實現模糊查詢

本人在製作一些業餘愛好的 途中,也在對於nodejs進行一些學習,在製作搜尋功能的時候對模糊查詢做出一定了解,由於博主是使用express mongoose框架來製作的專案,對網上的講解看的不是很懂,不過自己根據網上其他部落格的部分說明,又小小看了一下官方文件,嘗試了幾下得出了結論。首先我們知道mo...