Skip to content

Latest commit

 

History

History
60 lines (51 loc) · 1.51 KB

存储.md

File metadata and controls

60 lines (51 loc) · 1.51 KB
Cookie操作
const ACCESS_TOKEN = 'access_token';
const EXPIRE_TIME = 30;

export const setCookie = (value, key = ACCESS_TOKEN, expiredays = EXPIRE_TIME, DOMAIN_NAME = null) {
	value = encodeURIComponent(value);
	expiredays = expiredays;
	const exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	const exdatestr = exdate.toUTCString();
	document.cookie = DOMAIN_NAME ?
		`${key}=${value};expires=${exdatestr};path=/;domain=${DOMAIN_NAME}` :
		`${key}=${value};expires=${exdatestr};path=/;`;
};

export const getCookie = (key = ACCESS_TOKEN) {
  const reg = new RegExp(`(^| )${key}=([^;]*)(;|$)`);
  const arr = document.cookie.match(reg);
  return arr ? decodeURIComponent(arr[2]) : null;
};

// 清除cookie
export const removeCookie = (key = ACCESS_TOKEN) {
  setCookie('', key, -1);
};
LocalStorage
const ACCESS_TOKEN = 'access_token';
const EXPIRE_TIME = 30;

export const getStorage = (key = ACCESS_TOKEN, day = EXPIRE_TIME) => {
  const dateStr = localStorage.getItem(key);
  if (!dateStr) { return null; }
  const obj = JSON.parse(dateStr);
  if (new Date().getTime() - Number(obj.date) > 86400000 * day) {
    return null;
  }
  return obj.value;
};

export const setStorage = (value, key = ACCESS_TOKEN) => {
  const params = {
    date: new Date().getTime(),
    value
  };
  localStorage.setItem(key, JSON.stringify(params));
};

export const removeStorage = (key = ACCESS_TOKEN) => {
  localStorage.removeItem(key);
};

export const clearStorage = () => {
  localStorage.clear();
};