大家通常會在登錄后把個人信息存放在LocalStorage
中黔漂,且是明文的。禀酱。炬守。這其實是有很大的安全隱患的,假如被別有用心的人直接編輯修改剂跟,那會造成偽造權(quán)限進(jìn)行操作的現(xiàn)象
http.post('/api/v1/login', params, (userInfo) => {
localStorage.setItem('userInfo', userInfo)
})
我們應(yīng)該對存儲的個人信息進(jìn)行加密减途,并且也需要在取值時進(jìn)行解密
const USER_INFO_KEY = 'userInfo'
class UserInfoStroage {
tasks: Record<> = {}
get(key) {
// 解密取值
}
set(value) {
// 加密存儲
// 執(zhí)行tasks
}
clear() {
// 清除
}
subscribe(key, cb) {
// 事件訂閱,監(jiān)聽變化
tasks[key] = cb
}
}
export const uis = new UserInfoStroage()
這個事件訂閱挺重要的曹洽,我們可能需要監(jiān)聽userInfo
變化時去執(zhí)行一些函數(shù)鳍置,就可以在這里進(jìn)行訂閱~