vue-element-admin後臺 登入時 [記住我] 功能
1.服務端set-cookie根據login的引數rememberMe設定cookie的週期是‘當前會話’還是一段時間,如1一週。同時允許跨域訪問
header("Access-Control-Allow-Origin: 域名"); //PHP
@CrossOrigin //Spring mvc
2.登入後,服務端把token的cookie資訊通過http報文傳送回瀏覽器。
3.axios訪問時,需設定允許攜帶cookie,才能在要求登入的介面中帶上伺服器端的cookie資訊。
export function setToken(token, persistent =false) {
if (persistent) {
return Cookies.set(TokenKey, token, {expires: EXP })
}else {
return Cookies.set(TokenKey, token)
}
}
const service = axios.create({
baseURL: base_url, // api 的 base_url
timeout:5000, // 請求超時時間
withCredentials:true// 允許攜帶cookie
})
4.當前token可通過'js-cookie'中的set方法(每個瀏覽器對cookie的大小和數量都有限制)
Cookies.set(TokenKey, token, {expires: EXP })
5.可使用本地儲存儲存使用者資訊,過期時間與服務端一致
如果是rememberMe=true,則使用localStorage儲存,並設定過期時間;
如果rememberMe=false,則使用sessionStorage儲存,會話結束就過期(也可以使用cookie記錄使用者資訊)。
- 設定儲存的過期時間
//utils/auth.js
const userInfoKey ='userInfo'
const EXP =7 // day
export function setUserInfo(data, persistent =false) {
if (persistent) {
localStorageSetItem(userInfoKey, data)
}else {
sessionStorage.setItem(userInfoKey, JSON.stringify(data))
}
}
// EXP * 24 * 60 * 60 * 1 * 1000
export function getUserInfo() {
if (sessionStorage.getItem(userInfoKey)) {
return JSON.parse(sessionStorage.getItem(userInfoKey))
}else {
return localStorageGetItem(userInfoKey, EXP *24 *60 *60 *1 *1000)
}
}
//utils/index.js
// localStorage的Set方法封裝:記錄時間
export function localStorageSetItem(key, value) {
const curTime =new Date().getTime()
localStorage.setItem(key, JSON.stringify({data: value, time: curTime }))
}
// localStorage的Get方法封裝:根據過期時間獲取
export function localStorageGetItem(key, exp) {
const data = localStorage.getItem(key)
const dataObj = JSON.parse(data)
if (new Date().getTime() - dataObj.time > exp) {
onsole.log('使用者資訊已過期')
return {}
}else {
return dataObj.data
}
}
相關文章
- Asp.Net MVC記住使用者登入資訊下次直接登入功能ASP.NETMVC
- SharedPreferences實現記住密碼----自動登入功能密碼
- 電商後臺管理系統——登入功能
- SpringSecurity(2)---記住我功能實現SpringGse
- SSH 遠端登入「記住密碼」密碼
- PbootCMS後臺登陸密碼忘記/找回後臺登入密碼外掛boot密碼
- php使用cookie完成登入記住密碼PHPCookie密碼
- 直播app原始碼,登入時自動輸入密碼/自動記住密碼APP原始碼密碼
- PbootCMS忘記登入密碼怎麼辦?忘記了PBootCMS後臺的登入密碼boot密碼
- cookie記住密碼功能Cookie密碼
- 通過jquery.cookie.js實現記住使用者名稱、密碼登入功能jQueryCookieJS密碼
- 教你修改 Laravel "記住我" Cookie 的過期時間.LaravelCookie
- springboot + shiro 驗證碼與記住登入Spring Boot
- 部落格後臺登入,使用者,說說等功能實現
- vue-element-admin 入坑記(一)vue-element-admin 中文Vue
- 登入功能
- 請教一個問題,我在本地測試後臺可以正常登入的,為什麼將原始碼打包覆蓋到另外一臺電腦上後登入後臺時沒有反應原始碼
- SpringBoot + Spring Security 學習筆記(四)記住我功能實現Spring Boot筆記
- 帝國cms網站忘記後臺登入認證碼、登入安全答案怎麼辦?網站
- Laravel 中 “記住我” 原理分析Laravel
- 記住我的實現方式
- vue-element-admin擼後臺實踐(一)Vue
- 一步步帶你做vue後臺管理框架 - 登入功能Vue框架
- 帝國cms登入後臺提示“登入成功”,接著又提示“您還未登入”
- vue-element-admin 登陸Vue
- Fastadmin隱藏後臺登入入口地址?AST
- Node + Express 後臺開發 —— 登入標識Express
- PbootCMS程式後臺登入密碼重置工具boot密碼
- 直播app系統原始碼,簡單的登入介面(登入、註冊、記住密碼等按鍵)APP原始碼密碼
- 後臺我做了2次開發 為什麼登入成功卻不跳轉呢
- 直播系統原始碼,自動登入及記住密碼實現原始碼密碼
- C# 實現記住密碼功能C#密碼
- WordPress入門03-如何登入WordPress網站後臺網站
- ubuntu登入時出現“一閃之後回到登入介面”的現象Ubuntu
- oracle hang住的時候怎麼登陸呢?Oracle
- 直播app系統原始碼,使用者登入後選擇記住密碼,下次自動填充密碼APP原始碼密碼
- Spring Security系列之記住我(十二)Spring
- postmam響應資料的提取和關聯,用於登入介面後面其他功能依賴登入功能