1. 程式人生 > 實用技巧 >node 許可權管理 API登入 登入驗證 crypto加密外掛

node 許可權管理 API登入 登入驗證 crypto加密外掛

一、API介面

現代網站專案、小程式、app等web開發普遍採用後臺介面+前端框架渲染的模式實現前後臺分離開發。

介面(application programing interface 應用程式介面):後臺開發人員提供的一個個URL(路由),前端開發人員通過ajax請求這個url,與後臺資料庫進行互動(對資料表進行增刪改查操作),最終按照指定的格式(json、xml、txt)返回給前端開發人員,再由前端開發人員完成頁面渲染工作。

介面設計一般規則:(code-data-msg)

示例:

{
    "code": 200,
    "data": {
    	"userid":1,
    	"username":"老馬"
    },
    "msg": "使用者登入成功"
}

介面設計一般要有請求欄位說明、響應欄位說明、成功示例:

200	操作成功
201	操作不成功
207	資料不存在
208	引數不完整
209	資料已存在
403	未授權
401	請求的HTTP METHOD不支援,請檢查是否選擇了正確的POST/GET方式
500	伺服器發生未知錯誤
20001	使用者名稱密碼錯誤
20002	使用者名稱已經存在
20003	使用者名稱格式不正確
20004	使用者名稱不存在
40001	未經授權的客戶端資料

二、許可權設計-登入驗證

線上加密網站:https://tool.oschina.net/encrypt?type=2

一定要注意基本行業操守:不能將使用者的明文密碼直接存在資料庫表中,防止被“撞庫”。

2.1、 nodejs 的 crypto 模組

let crypto = require("crypto");
// let hash = crypto.createHash("md5");
// Hmac()需要兩個引數,引數一為加密演算法,引數二為金鑰
let hash = crypto.createHmac("md5","offcn.com");
hash.update("654321");
let password = hash.digest("hex");

2.2 登入功能實現思路:

​ 實現流程:

1) 新增一個登入驗證功能,判斷是否存在cookie之類的登入憑證,如果沒有則提示跳轉到登入頁。如果有就放行。

2)使用者輸入賬號、密碼。使用ajax將賬號密碼傳送到伺服器端,伺服器端程式判斷使用者的賬號密碼是否正確(去資料庫的admin表中執行查詢操作)。如果正確返回給前端json,並且寫一個cookie。

步驟:

1) 在資料庫admin表中新增賬號和加密密碼

2)實現一個登入頁。

3)實現一個攔截功能,判斷否存在cookie,如果沒有則提示跳轉到登入頁。如果有就放行

4)當用戶輸入賬號密碼後,到資料庫查詢是否有一條記錄,如果有,設定cookie,傳送成功json。如果沒有則傳送失敗json

5)前端收到json後,根據code的值是否成功,然後渲染頁面。