摘要:原理后端不在存儲認(rèn)證信息,而是在用戶登錄的時(shí)候生成一個(gè),然后返回給前端,前端進(jìn)行存儲,在需要進(jìn)行驗(yàn)證的時(shí)候?qū)⒁徊l(fā)送到后端,后端進(jìn)行驗(yàn)證加密的方式對稱加密和非對稱加密,對稱加密指的是加密解密使用同一個(gè)密鑰,非對稱加密使用公鑰和私鑰,加密用私
原理
后端不在存儲認(rèn)證信息,而是在用戶登錄的時(shí)候生成一個(gè)token,然后返回給前端,前端進(jìn)行存儲,在需要進(jìn)行驗(yàn)證的時(shí)候?qū)oken一并發(fā)送到后端,后端進(jìn)行驗(yàn)證
加密的方式:對稱加密和非對稱加密,對稱加密指的是加密解密使用同一個(gè)密鑰,非對稱加密使用公鑰和私鑰,加密用私鑰加密,解密用公鑰解密
主要流程:用戶登錄的時(shí)候,生成token,token 中應(yīng)該包含 payload (數(shù)據(jù)) cert (密鑰) 確定加密方式
返回給前端 cookie,前端進(jìn)行存儲
前端在進(jìn)行數(shù)據(jù)請求的時(shí)候發(fā)送token到后端
后端進(jìn)行token驗(yàn)證,而且進(jìn)行過期時(shí)間的驗(yàn)證
安裝安裝jsonwebtoken? npm install?jsonwebtoken -S
1.公鑰加密 公鑰解密1.生成秘鑰,并以cookie的方式返回前端
// 對稱 加密 let _payload = { // 鑰加密的數(shù)據(jù) userid: _judge_result[0]._id, username: _judge_result[0].username, level: 8, } let _cert = "i love u" // 密鑰 var _token = jwt.sign(_payload, _cert); res.cookie("token", _token)//發(fā)送cookie
2.再次請求時(shí),后端解密
var decoded = jwt.verify(req.cookies.token, "i love u");2.公鑰加密 公鑰解密
生成秘鑰
生成私鑰:
ssh-keygen -t rsa -b 2048 -f private.key
生成公鑰
openssl rsa -in private.key -pubout -outform PEM -out public.key
1.私鑰加密
// 非對稱加密 let _payload = { // 鑰加密的數(shù)據(jù) userid: _judge_result[0]._id, username: _judge_result[0].username, level: 8, } // 取出來私鑰 let _private = fs.readFileSync(PATH.resolve(__dirname, "../keys/private.key")) var _token = jwt.sign(_payload, _private, { algorithm: "RS256"});//進(jìn)行加密 res.cookie("token",_token);//發(fā)送給前端
2.公鑰解密
let _public=fs.readFileSync(PATH.resolve(__dirname,"../keys/public.key"));//獲取公鑰 var decoded = jwt.verify(req.cookies.token,_public, {algorithm: "RS256"});//公鑰解密
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100052.html
摘要:我們將登錄按鈕上綁上事件,點(diǎn)擊登錄之后向服務(wù)端提交賬號和密碼進(jìn)行驗(yàn)證。所以前端和后端權(quán)限的劃分是不太一致。側(cè)邊欄最后一個(gè)涉及到權(quán)限的地方就是側(cè)邊欄,不過在前 完整項(xiàng)目地址:vue-element-admin 系列文章: 手摸手,帶你用vue擼后臺 系列一(基礎(chǔ)篇) 手摸手,帶你用vue擼后臺 系列二(登錄權(quán)限篇) 手摸手,帶你用vue擼后臺 系列三 (實(shí)戰(zhàn)篇) 手摸手,帶你用vu...
摘要:最近讀了幾篇大牛的博客才對認(rèn)證機(jī)制方面有了進(jìn)一步了解。盡管在服務(wù)器端可以優(yōu)雅地使用技術(shù)如攔截器或動態(tài)代理對所有進(jìn)行前置的登錄驗(yàn)證。認(rèn)證方式比較支持問題和其實(shí)是緊密相聯(lián)的。第三方授權(quán)問題采用傳統(tǒng)認(rèn)證方式,若要訪問業(yè)務(wù),一定要先登錄。 引言 以前對認(rèn)證這方面的認(rèn)識一直不太深刻,不清楚為什么需要token這種認(rèn)證,為什么不簡單使用session存儲用戶登錄信息等。最近讀了幾篇大牛的博客才對認(rèn)...
摘要:項(xiàng)目地址本文將分四部分介紹登錄邏輯前置過濾器校驗(yàn)邏輯工具類演示驗(yàn)證一登錄邏輯登錄成功后,將生成的存儲在中。鍵是用戶值是二前置過濾器繼承自,必須實(shí)現(xiàn)的四個(gè)方法。 這兩天在寫項(xiàng)目的全局權(quán)限校驗(yàn),用 Zuul 作為服務(wù)網(wǎng)關(guān),在 Zuul 的前置過濾器里做的校驗(yàn)。 權(quán)限校驗(yàn)或者身份驗(yàn)證就不得不提 Token,目前 Token 的驗(yàn)證方式有很多種,有生成 Token 后將 Token 存儲在 R...
閱讀 2912·2021-11-23 09:51
閱讀 1561·2021-11-15 11:36
閱讀 3018·2021-10-13 09:40
閱讀 1913·2021-09-28 09:35
閱讀 13097·2021-09-22 15:00
閱讀 1380·2019-08-29 13:56
閱讀 2933·2019-08-29 13:04
閱讀 2706·2019-08-28 18:06