一:jwt
共有三部分:
令牌組成: 1.標頭(header)
2.有效載荷(payload)
3.簽名(Signature)
三部分以"."點進行分割
生成方式:1(標頭)+2(載荷)+自定義鹽值(簽名) 最終生成 3(token)
代碼實例:
二:springboot 封裝jwt工具類
自定義攔截器:
總結:JWT是用作http傳輸json時安全驗證的一種方式,也就是登錄之后,服務器會返回給前端一個token,后續如果前端訪問其他接口,都需要攜帶token(token一般都是放在請求頭里面),生成的token一般都是存在前端本地(sessionStorage和localStorage)
擴展:sessionStorage和localStorage的區別
html5中的Web Storage包括了兩種存儲方式:sessionStorage和localStorage。
sessionStorage用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問
並且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。只允許同一窗口訪問。
而localStorage用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。同源可以讀取並修改localStorage數據。
代碼實例:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script>
//setItem存儲value
localStorage.setItem("name", "一凡");
localStorage.setItem("job", "web前端");
//getItem獲取value
var name = localStorage.getItem('name');
var job = localStorage.getItem('job');
console.log('姓名:' + name);
console.log('職業:' + job);
//removeItem刪除key
localStorage.removeItem('name');
var name = localStorage.getItem('name');
var job = localStorage.getItem('job');
console.log('姓名:' + name);
console.log('職業:' + job);
//clear清除所有的key/value
localStorage.clear();
localStorage.removeItem('name');
var name = localStorage.getItem('name');
var job = localStorage.getItem('job');
console.log('姓名:' + name);
console.log('職業:' + job);
</script>
</body>
</html>
執行結果:
//getItem獲取value
姓名:一凡
工作:web前端
//removeItem刪除key(也就是刪除name的值,所以返回為null)
姓名:null
工作:web前端
//clear清除所有的key/value(刪除所有存的信息,也就是name和job,所以再取值全部為null)
姓名:null
工作:null