Ver código fonte

cookie -> sessionStorage

Michael Wang 3 anos atrás
pai
commit
25c8a2186e
1 arquivos alterados com 15 adições e 7 exclusões
  1. 15 7
      src/auth/auth.ts

+ 15 - 7
src/auth/auth.ts

@@ -1,33 +1,41 @@
-import Cookies from "js-cookie";
+// import Cookies from "js-cookie";
 
 /**
  * FIXME: 原本以为设置httponly的cookie可以防止token被XSS攻击,但是前端设置不了httponly的cookie。
  * 理论上前端存储在cookie和localStorage的token都可能被盗。
+ *
+ * 为了确保一个tab也可以登录一个用户,所以用sessionStorage,多个tab不会相互干扰,但也不能共享权限信息了。
  */
 const TokenKey = "Token";
 
 export function getToken() {
-  return Cookies.get(TokenKey);
+  // return Cookies.get(TokenKey);
+  return sessionStorage.getItem(TokenKey);
 }
 
 export function setToken(token: string) {
-  return Cookies.set(TokenKey, token);
+  // return Cookies.set(TokenKey, token);
+  return sessionStorage.setItem(TokenKey, token);
 }
 
 export function removeToken() {
-  return Cookies.remove(TokenKey);
+  // return Cookies.remove(TokenKey);
+  return sessionStorage.removeItem(TokenKey);
 }
 
 const SessionKey = "SessionKey";
 
 export function getSessionId() {
-  return Cookies.get(SessionKey);
+  // return Cookies.get(SessionKey);
+  return sessionStorage.getItem(SessionKey);
 }
 
 export function setSessionId(sessionId: string) {
-  return Cookies.set(SessionKey, sessionId);
+  // return Cookies.set(SessionKey, sessionId);
+  return sessionStorage.setItem(SessionKey, sessionId);
 }
 
 export function removeSessionId() {
-  return Cookies.remove(SessionKey);
+  // return Cookies.remove(SessionKey);
+  return sessionStorage.removeItem(SessionKey);
 }