Vue express鑒權(quán)零基礎(chǔ)入門(mén)
講在前面的話:一個(gè)成熟的全棧工程師開(kāi)發(fā)的前后端項(xiàng)目鑒權(quán)是必不可少的,接下來(lái)我們就用一篇文章來(lái)介紹一下express鑒權(quán)之路。
本文主要目的是介紹鑒權(quán),那么默認(rèn)讀者已經(jīng)配置完成了express的跨域基本配置以及options請(qǐng)求處理以及post請(qǐng)求參數(shù)接收 如果沒(méi)有配置也沒(méi)有關(guān)系,試一下我封裝的包,不好用你找我麻煩
npm i wxs-express-config
const wxsExpressConfig = require("wxs-express-config"); // 返回一個(gè)經(jīng)過(guò)wxs封裝之后的app const app = wxsExpressConfig();
這個(gè)app就是經(jīng)過(guò)我封裝后的express app,但是默認(rèn)設(shè)置了全局跨域和接受post請(qǐng)求參數(shù)等配置。如果不想全局跨域可以這樣配置
// 返回一個(gè)經(jīng)過(guò)wxs封裝之后的app const app = wxsExpressConfig({ CROSURL: "http://localhost:3000" });
token圖示一點(diǎn)通
看這個(gè)示意圖就知道校驗(yàn)過(guò)程是很簡(jiǎn)單的,實(shí)際操作起來(lái)更加簡(jiǎn)單。
express鑒權(quán)
下載加密/解密包
在express中鑒權(quán)需要用到一個(gè)玩意兒,為了避免出錯(cuò),這里指定一下版本
// jsonwebtoken 加密用的 express-jwt是解密用的
npm i jsonwebtoken@8.5.1
加密基本使用(生成token)
第一步毫無(wú)疑問(wèn)的是引入
const jwt = require("jsonwebtoken");
使用jsonwebtoken生成token就只有一行代碼
jwt.sign('需要加密的信息', '自定義的加密密鑰', '額外的配置信息,一般是Token過(guò)期時(shí)間'),
舉個(gè)??
jwt.sign({<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> username: "wxs" }, '巴啦啦小魔仙隨地大小變', {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> expiresIn: "10s" }),
這里就生成了一個(gè)用巴啦啦小魔仙隨地大小變密鑰加密{ username: “wxs” }且有效時(shí)間為10s的Token
傳遞Token
express定義一個(gè)接口
app.post("/login", (req, res) => { res.send({ code: 0, message: "登錄成功", token: jwt.sign({ username: "wxs" }, secretKey, { expiresIn: "10s" }), }); }); app.listen(3001, () => { console.log("your localServer is running on http://localhost:3001"); });
查看token
使用postman
驗(yàn)證token
再定義另一個(gè)接口
app.get("/getUserInfo", (req, res) => { try { jwt.verify(req.query.token, secretKey); res.send("一個(gè)get請(qǐng)求想獲取用戶(hù)信息"); } catch (err) { res.send("過(guò)期了,請(qǐng)重新登錄"); } });
postMan編輯如下
注意填上token字段
最后就可以隨心所欲的想在那個(gè)接口驗(yàn)證就在那個(gè)接口驗(yàn)證(還是建議寫(xiě)個(gè)全局中間件統(tǒng)一驗(yàn)證)
隔十秒之后再次發(fā)送請(qǐng)求
鑒權(quán)成功!
到此這篇關(guān)于Vue express鑒權(quán)零基礎(chǔ)入門(mén)的文章就介紹到這了,更多相關(guān)Vue express鑒權(quán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue時(shí)間軸 vue-light-timeline的用法說(shuō)明
這篇文章主要介紹了Vue時(shí)間軸 vue-light-timeline的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10vue使用socket與服務(wù)端進(jìn)行通信的代碼詳解
這篇文章主要給大家介紹了vue如何使用socket與服務(wù)端進(jìn)行通信的相關(guān)資料,在Vue中我們可以將Websocket類(lèi)封裝成一個(gè)Vue插件,以便全局使用,需要的朋友可以參考下2023-09-09vue中使用AJAX實(shí)現(xiàn)讀取來(lái)自XML文件的信息
這篇文章主要為大家詳細(xì)介紹了vue中如何使用AJAX實(shí)現(xiàn)讀取來(lái)自XML文件的信息,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以參考下2023-12-12Vue-resource攔截器判斷token失效跳轉(zhuǎn)的實(shí)例
下面小編就為大家?guī)?lái)一篇Vue-resource攔截器判斷token失效跳轉(zhuǎn)的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式
這篇文章主要介紹了基于Echarts圖表在div動(dòng)態(tài)切換時(shí)不顯示的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07基于Vue封裝實(shí)現(xiàn)全屏功能工具類(lèi)
在?Web?應(yīng)用程序中,有時(shí)需要為某些內(nèi)容提供全屏顯示的功能,本文將介紹如何使用?Vue.js?3?的?Composition?API?創(chuàng)建一個(gè)全屏功能的工具類(lèi),希望對(duì)大家有所幫助2024-03-03實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式
今天小編就為大家分享一篇實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11