使用nodejs后端實現登錄驗證


 

首先在使用express-generator安裝expess的腳手架,再使用express-e生成express的框架, 其中-e:  代表使用 ejs 模板,-e前面也可以寫 自己定義的項目的名字,不寫默認為空。

,然后根據rmvc模式進行搭建架構,建立目錄,

其中rmvc。

r,roouter,負責進行路由轉發

m,models,負責獲取數據,或者經數據操作

v,view,負責模板的樣式

c,constrillers,負責事件的邏輯處理

middlewares,中間層,負責進行 驗證的用戶的權限

keys,負責生成公鑰和私鑰

public,靜態資源存放

utils,連接數據庫

 

先進行數據庫的連接在utiles下的db.js進行配置數據庫的連接,這里使用mongoose插件對mongo數據庫進行操作,

連接上數據庫后在model數據處理模塊中定義傳入數據的格式並進行數據的差刪改查,(調用mogoose的save,find,remove等方法)

 

數據庫配置完成后在router里面的users.js里面配置router,當路由到/signup的時候,就調用controllers里面的use.js里面的signup方法,

1.singup(注冊)函數

首先獲取在前端注冊時傳入的用戶名,調用select在數據庫中查詢,查到了就return就不往下進行了

 如果沒有查到,

 先引入bysbcrypt插件進行對密碼的加密

 

 對密碼就行加密並替換

2.sigin(登錄)函數

router里面的users.js里面配置router,當路由到/signin的時候,就調用controllers里面的use.js里面的signin方法,

在接受到數據之后,給前台的用戶返回一個標識的token

先定義一個隨機生成token的函數生成token(這里使用非對稱加密生成公鑰和私鑰進行匹配)

 數首先從數據庫查用戶的用戶名,查到了就調用comparePassword進行密碼的校驗,校驗成功在返回req信息的頭信息中添加一個隨機的token

3.issigin(判斷用戶是否處於登錄狀態)函數(在用戶登錄之后,如果不進行登出操作就一直維持在登錄狀態,避免一刷新就退出)

當路由到/signup的時候,就調用controllers里面的use.js里面的oAuthMiddleWare中間層

router.get('/issignin', oAuthMiddleWare)

 

在中間層主要進行驗證token,使用公鑰對私鑰進行匹配

匹配成功就返回issignin = true

 

 

1在后端實現添加操作

效果如圖

后端的操作,

1.首先在app.js里面進行配置路由

當路由跳轉到這些路徑的時候執行對應的路由文件

2.在router中的position.js文件中配置

首先無論什么請求,先進行用戶身份驗證的中間層,(就是當用戶進行登錄才能進行操作),

如果是get請求就調用controller中position.js里面的findall方法

如果是post請求就調用controller中先進行中間層的uploadFile文件將圖片文件進行處理然后再調用position.js里面的save方法

3.然后在model數據處理模塊建立position的數據處理

先定義存入數據的格式

 

再定義save和find方法

4.在controller里面的position.js里面添加處理邏輯

 findAll方法

save方法

 

 

 在前端使用隱藏的input 進行ID的傳輸

1

 

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

11

1

111

1

14

4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM