黑馬部落格——詳細步驟(二)專案功能的實現之登入功能
2. 專案功能實現
2.1 登入
1. 建立使用者集合,初始化使用者
1. 連線資料庫
2. 建立使用者集合
3. 初始化使用者
連線資料庫:
建立使用者集合:
初始化使用者
刪除或註釋掉測試程式碼:
2. 為登入表單項設定請求地址、請求方式以及表單項name屬性
3. 當使用者點選登入按鈕時,客戶端驗證使用者是否填寫了登入表單
4. 如果其中一項沒有輸入,阻止表單提交
5. 伺服器端接收請求引數,驗證使用者是否填寫了登入表單
下載好第三方模組後重新啟動伺服器
設定google禁止使用js程式碼
高階設定->內容設定->JavaScript 選擇禁止
6. 如果其中一項沒有輸入,為客戶端做出響應,阻止程式向下執行
美化錯誤頁面:
使用錯誤頁面模板
優化頁面:錯誤頁面三秒後返回登入頁面
7. 根據郵箱地址查詢使用者資訊
8. 如果使用者不存在,為客戶端做出響應,阻止程式向下執行
9. 如果使用者存在,將使用者名稱和密碼進行比對
10. 比對成功,使用者登入成功
11. 比對失敗,使用者登入失敗
12. 密碼加密處理 bcrypt
雜湊加密是單程加密方式:1234=>abcd
只能加密,不能解密
在加密的密碼中加入隨機字串可以增加密碼被破解的難度。
bcrypt依賴的其他環境
1.安裝python 並把python設定到環境變數中
2.node-gyp
npm install node-gyp -g
3.windows-build-tools
Python 2版本:npm install --global --production windows-build-tools
Python其它版本:https://blog.csdn.net/weixin_43848802/article/details/105113616
測試第三方模組bcrypt能否使用
在專案中使用第三方模組bcrypt
比對密碼:
13. 儲存登入狀態
成功登入後
表明沒有儲存登入狀態(http協議的無狀態性)
儲存登入狀態需要技術:cookie與session
cookie與session
cookie:瀏覽器在電腦硬碟中開闢的一塊空間,主要供伺服器端儲存資料。
- cookie中的資料是以域名的形式進行區分的。
- cookie中的資料是有過期時間的,超過時間資料會被瀏覽器自動刪除。
- cookie中的資料會隨著請求被自動傳送到伺服器端。
session:實際上就是一個物件,儲存在伺服器端的記憶體中,在session物件中也可以儲存多條資料,每一條資料都有一個sessionid做為唯一標識。
在node.js中需要藉助express-session實現session功能。
npm install express-session
成功登入後
成功登入後
登入後跳轉使用者列表頁面(重定向)
成功登入後
14.登入攔截(設定未登入不能檢視user頁面等)
驗證:未登入狀態下訪問http://localhost/admin/user 會跳轉到登入介面
15.將功能模組分離
(1)分離登入刷選功能模組:
驗證:未登入狀態下訪問http://localhost/admin/user 會跳轉到登入介面
(2)分離登入功能模組:
簡化
驗證登入功能能否正常執行
以同樣的方式處理其它功能
相關文章
- 黑馬部落格——詳細步驟(十)專案功能的實現之開發環境與生產環境開發環境
- 黑馬部落格——詳細步驟(八)專案功能的實現之另一種分頁方式【mongoose-sex-page】Go
- 部落格後臺登入,使用者,說說等功能實現
- cloud compare二次外掛化功能開發詳細步驟(一)Cloud
- 特別詳細的react專案搭建步驟React
- SSM專案使用攔截器實現登入驗證功能SSM
- 基於.NetCore開發部落格專案 StarBlog - (14) 實現主題切換功能NetCore
- Scala的安裝以及建立Scala專案的詳細步驟
- 如何實現DDD事件建模的詳細步驟 - goeleven事件Go
- nodejs專案部署到騰訊雲詳細步驟NodeJS
- 部落格專案前臺實現
- phpExcel實現Excel資料的匯入匯出(全步驟詳細解析)PHPExcel
- scrapy 框架新建一個 爬蟲專案詳細步驟框架爬蟲
- JSP(ajax)+Servlet實現簡單的登入功能JSServlet
- springboot+mybatis實現登入功能,返回jsonSpring BootMyBatisJSON
- golang Iris 實現登入踢人功能 (擠號)Golang
- Java Web實現使用者登入功能JavaWeb
- smbms專案核心功能實現
- LVM建立的詳細步驟LVM
- 登入功能
- 實現基於JWT的Token登入驗證功能JWT
- React專案實現匯出PDF的功能React
- 利用專案管理工具實現專案日程安排:技巧與步驟詳解專案管理
- Laravel5.8 入門系列二,快速實現使用者註冊登入功能Laravel
- Flask後端開發(二) - 功能實現和專案總結Flask後端
- django與小程式實現登入驗證功能Django
- 面試官:如何實現掃碼登入功能?面試
- electron + vue專案實現列印小票功能Vue
- MySQL的安裝步驟(詳細)MySql
- NodeJS入門(一)---nodejs詳細安裝步驟NodeJS
- VirtualView iOS 模板載入功能實現詳解ViewiOS
- 標籤實現預載入功能詳解
- 做個開源部落格學習Vite2 + Vue3 (四)實現部落格功能ViteVue
- SpringBoot實現檔案上傳功能詳解Spring Boot
- VuePress 部落格優化之增加 Vssue 評論功能Vue優化
- VuePress 部落格優化之增加 Valine 評論功能Vue優化
- 專案步驟
- 基於.NetCore開發部落格專案 StarBlog - (13) 加入友情連結功能NetCore