為了實現(xiàn)前端校驗用戶,后端需要在用戶登錄的時候記錄下該用戶的狀態(tài)并加密之后返回給前端。之后該用戶的所有請求都應(yīng)該附帶這個加密后的狀態(tài),后端取到這個狀態(tài)解密,并與之前保存的狀態(tài)對比,以此來判斷該用戶是否登錄或合法。
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有黃岡免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。我這里使用了node簡單了寫了個本地的express服務(wù),來實現(xiàn)上述功能。完整的代碼直接貼出來:
// server.js const express = require('express'); const bodyParser = require('body-parser'); const jwt = require('jsonwebtoken'); const app = express(); // secret是后端加密的密鑰 const secret = 'rhwl'; app.use((req, res, next) => { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT'); res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); if (req.method.toLowerCase() === 'options') { return res.end(); } next(); }); app.use(bodyParser.json()); app.post('/login', (req, res) => { const { username } = req.body; if (username === 'admin') { // 如果是合法用戶,使用jwt進行加密生成token res.json({ code: 0, username: 'admin', token: jwt.sign({ username: 'admin' }, secret, { expiresIn: 20, }), }); } else { res.json({ code: 1, data: '用戶名不存在', }); } }); app.get('/validate', (req, res) => { const token = req.headers.authorization; // 在請求頭中附帶token信息 jwt.verify(token, secret, (err, decode) => { // 驗證token是否合法 if (err) { return res.json({ code: 1, data: '當(dāng)前token無效', }); } // 如果驗證合法,重新生成新的token,并返回信息 res.json({ username: decode.username, code: 0, token: jwt.sign({ username: 'admin' }, secret, { expiresIn: 20, }), }); }); }); app.listen(3000, ()=>{ console.log('服務(wù)器在3000端口運行'); });
當(dāng)前名稱:vue-router結(jié)合vuex實現(xiàn)用戶權(quán)限控制功能-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.rwnh.cn/article20/esijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、ChatGPT、網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、軟件開發(fā)、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)