Vue express鑒權(quán)零基礎(chǔ)入門
講在前面的話:一個(gè)成熟的全棧工程師開發(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)求想獲取用戶信息");
} catch (err) {
res.send("過(guò)期了,請(qǐng)重新登錄");
}
});
postMan編輯如下

注意填上token字段
最后就可以隨心所欲的想在那個(gè)接口驗(yàn)證就在那個(gè)接口驗(yàn)證(還是建議寫個(gè)全局中間件統(tǒng)一驗(yàn)證)
隔十秒之后再次發(fā)送請(qǐng)求

鑒權(quán)成功!
到此這篇關(guān)于Vue express鑒權(quán)零基礎(chǔ)入門的文章就介紹到這了,更多相關(guān)Vue express鑒權(quán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue 使用v-model實(shí)現(xiàn)控制子組件顯隱效果
v-model 可以實(shí)現(xiàn)雙向綁定的效果,允許父組件控制子組件的顯示/隱藏,同時(shí)允許子組件自己控制自身的顯示/隱藏,本文給大介紹Vue 使用v-model實(shí)現(xiàn)控制子組件顯隱,感興趣的朋友一起看看吧2023-11-11
Vue報(bào)錯(cuò)Syntax?Error:TypeError:?this.getOptions?is?not?a?
前幾天在vue運(yùn)行項(xiàng)目過(guò)程中報(bào)錯(cuò)了,所以下面這篇文章主要給大家介紹了關(guān)于Vue報(bào)錯(cuò)Syntax?Error:TypeError:?this.getOptions?is?not?a?function的解決方法,需要的朋友可以參考下2022-07-07
如何解決this.$refs.form.validate()不執(zhí)行的問(wèn)題
這篇文章主要介紹了如何解決this.$refs.form.validate()不執(zhí)行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
uniapp使用條件編譯#ifdef(跨平臺(tái)設(shè)備兼容)
這篇文章主要介紹了uniapp使用條件編譯#ifdef(跨平臺(tái)設(shè)備兼容),需要的朋友可以參考下2022-12-12
Vue3 directive自定義指令內(nèi)部實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Vue3 directive自定義指令內(nèi)部實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta
Vue.js中,prerender-spa-plugin和vue-meta-info插件的結(jié)合使用,提供了解決SEO問(wèn)題的方案,prerender-spa-plugin通過(guò)預(yù)渲染技術(shù)生成靜態(tài)HTML,而vue-meta-info則能動(dòng)態(tài)管理頁(yè)面元數(shù)據(jù),本文將探討如何使用這兩個(gè)工具優(yōu)化Vue.js項(xiàng)目的SEO表現(xiàn),包括安裝、配置及注意事項(xiàng)2024-10-10

