Jelajahi Sumber

登录有效期设置修改

Zhangbw 4 minggu lalu
induk
melakukan
69112546ce
1 mengubah file dengan 44 tambahan dan 0 penghapusan
  1. 44 0
      src/utils/auth.js

+ 44 - 0
src/utils/auth.js

@@ -22,21 +22,65 @@ import {
 
 var TOKEN_KEY = 'user_token'
 var USER_INFO_KEY = 'user_info'
+var COOKIE_EXPIRE_DAYS = 30
 
 var statusCheckTimer = null
 var STATUS_CHECK_INTERVAL = 10000
 var isShowingDisabledModal = false
 
+// #ifdef H5
+var setCookie = function(name, value, days) {
+  var expires = ''
+  if (days) {
+    var date = new Date()
+    date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)
+    expires = '; expires=' + date.toUTCString()
+  }
+  document.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/'
+}
+
+var getCookie = function(name) {
+  var nameEQ = name + '='
+  var cookies = document.cookie.split(';')
+  for (var i = 0; i < cookies.length; i++) {
+    var c = cookies[i].trim()
+    if (c.indexOf(nameEQ) === 0) {
+      return decodeURIComponent(c.substring(nameEQ.length))
+    }
+  }
+  return null
+}
+
+var removeCookie = function(name) {
+  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
+}
+// #endif
+
 export var setToken = function(token) {
   uni.setStorageSync(TOKEN_KEY, token)
+  // #ifdef H5
+  setCookie(TOKEN_KEY, token, COOKIE_EXPIRE_DAYS)
+  // #endif
 }
 
 export var getToken = function() {
+  // #ifdef H5
+  // 优先读 cookie,fallback 到 localStorage
+  var cookieToken = getCookie(TOKEN_KEY)
+  if (cookieToken) {
+    // 同步回 localStorage 防止不一致
+    uni.setStorageSync(TOKEN_KEY, cookieToken)
+    return cookieToken
+  }
+  // #endif
   return uni.getStorageSync(TOKEN_KEY) || null
 }
 
 export var removeToken = function() {
   uni.removeStorageSync(TOKEN_KEY)
+  // #ifdef H5
+  removeCookie(TOKEN_KEY)
+  // #endif
 }
 
 export var setUserInfo = function(userInfo) {