這次帶給大家node實作登入時圖片驗證碼功能,node實作登入時圖片驗證碼功能的注意事項有哪些,以下就是實戰案例,一起來看一下。
實現這裡的圖形驗證碼我是用的node裡svg-captcha模組,可以全部支持字符和數字,全平台支持,用起來很簡單。
1.安裝
cnpm i svg-captcha --save
2.在使用的地方導入
var svgCaptcha = require('svg-captcha');
3.取得驗證碼
3-1 安裝cookie-parser
,作用是將取得到的session儲存到cookie,方便前端存取驗證
#cnpm i cookie-parser --save
3-2 使用cookie-parser
const cookieParase = require('cookie-parser'); app.use(cookieParase());
這樣就可以在專案裡使用cookie了
3-3 取得驗證碼
// 获取验证码 getCaptcha(req, res, next){ var captcha = svgCaptcha.create({ // 翻转颜色 inverse: false, // 字体大小 fontSize: 36, // 噪声线条数 noise: 2, // 宽度 width: 80, // 高度 height: 30, }); // 保存到session,忽略大小写 req.session = captcha.text.toLowerCase(); console.log(req.session); //0xtg 生成的验证码 //保存到cookie 方便前端调用验证 res.cookie('captcha', req.session); res.setHeader('Content-Type', 'image/svg+xml'); res.write(String(captcha.data)); res.end(); },
做到這只是實作了產生驗證碼的功能,那麼要存取呢?
4.寫後台路由
// 获取验证码 router.get('/api/getCaptcha', function(req, res, next) { return api.getCaptcha(req, res, next); })
目前端呼叫/api/getCaptcha
這個介面的時候,回傳驗證碼資訊,是svg格式
5.前端存取
<img src="/static/imghwm/default1.png" data-src="/api/getCaptcha" class="lazy" alt="node實作登入時圖片驗證碼功能" >
#但是現在我們又有需求了,當點擊這個驗證碼的時候,驗證碼會刷新
6.實現點擊驗證碼刷新
更改一下剛剛驗證碼的結果,給他加一個外層a標籤,並給他綁定一個點擊事件,我這裡用了vue
,所以是@click
,其他框架同理.
<img src="/static/imghwm/default1.png" data-src="/api/getCaptcha" class="lazy" alt="node實作登入時圖片驗證碼功能" >
點擊事件editCaptcha
editCaptcha () { this.$refs.imgYzm.src = '/api/getCaptcha?d='+Math.random() },
這樣就實現了點擊驗證碼刷新的問題
7.前端驗證驗證碼
剛剛我們在後台得到了驗證碼,但是前端要怎麼驗證呢?
記得在3-2的時候我們安裝了cookie-parser
,並且在3-3裡將生成的session保存在cookie裡,這裡我們前端就可以通過訪問這個cookie拿到驗證碼的值了。
為什麼要存在cookie裡?因為後端產生的session我們前端是存取不到的,如果等訪問到的話,那還談什麼安全性可言,所以保存一份在cookie裡供前端存取。
let captcha = document.cookie.split('=')[1] if(this.yzm != captcha){ return this.$message.warning('验证码错误') }
最後的前端輸入帳號密碼驗證碼做登入驗證等等我就不多概述了。具體想法就是這樣。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是node實作登入時圖片驗證碼功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版