Parcourir la source

Add session configuration

vbea il y a 1 an
Parent
commit
ff6b3564bb
2 fichiers modifiés avec 89 ajouts et 20 suppressions
  1. 1 0
      Strides-Admin/src/settings.js
  2. 88 20
      Strides-Admin/src/utils/auth.js

+ 1 - 0
Strides-Admin/src/settings.js

@@ -19,6 +19,7 @@ module.exports = {
   enableEVCPID: true,
   enableOCPIToken: false, //是否显示完整的OCPI Token(仅ChargEco为false)
   enablePassword12: true, //是否启用高复杂度密码安全策略(仅ChargEco为true)
+  enableSessionAuth: true, //是否启用Session管理登录而不是localStorage
   /**
    * @type {string}
    * @description API url base service

+ 88 - 20
Strides-Admin/src/utils/auth.js

@@ -2,22 +2,43 @@ import Cookies from 'js-cookie'
 import { Base64 } from 'js-base64';
 import settings from '@/settings';
 
-const TokenKey = settings.projectName + '-TOKEN'
+const TokenKey = settings.projectName + '-CSMS-TOKEN'
 const AuthRoutesKey = settings.projectName + '-ApacheResource'
 const RoleName = settings.projectName + '-Player'
 const UserName = settings.projectName + '-Gamer'
 const EmailName = settings.projectName + '-MailBox'
 
+/**
+ * 获取AccessToken
+ */
 export function getToken() {
-  return Cookies.get(TokenKey)
+  if (settings.enableSessionAuth) {
+    return sessionStorage.getItem(TokenKey);
+  } else {
+    return localStorage.getItem(TokenKey);
+  }
 }
 
+/**
+ * 设置AccessToken
+ */
 export function setToken(token) {
-  return Cookies.set(TokenKey, token)
+  if (settings.enableSessionAuth) {
+    sessionStorage.setItem(TokenKey, token);
+  } else {
+    localStorage.setItem(TokenKey, token);
+  }
 }
 
+/**
+ * 移除AccessToken
+ */
 export function removeToken() {
-  return Cookies.remove(TokenKey)
+  if (settings.enableSessionAuth) {
+    sessionStorage.removeItem(TokenKey);
+  } else {
+    localStorage.removeItem(TokenKey);
+  }
 }
 
 export function getAuthRoutes(back) {
@@ -38,28 +59,48 @@ export function getAuthRoutes(back) {
   }
 }
 
+/**
+ * 获取权限列表
+ */
 export function getAuthRoutesLocale() {
-  const value = localStorage.getItem(AuthRoutesKey)
+  const value = settings.enableSessionAuth ? sessionStorage.getItem(AuthRoutesKey) : localStorage.getItem(AuthRoutesKey);
   if (value) {
     return JSON.parse(Base64.decode(value))
   }
   return []
 }
 
-export function removeAuthRoutes() {
-  return localStorage.removeItem(AuthRoutesKey)
-}
-
+/**
+ * 设置权限列表
+ */
 export function setAuthRoutes(routes) {
   if (routes) {
     const routerString = JSON.stringify(routes)
     const routerBase64 = Base64.encode(routerString)
-    localStorage.setItem(AuthRoutesKey, routerBase64)
+    if (settings.enableSessionAuth) {
+      sessionStorage.setItem(AuthRoutesKey, routerBase64);
+    } else {
+      localStorage.setItem(AuthRoutesKey, routerBase64)
+    }
+  }
+}
+
+/**
+ * 移除权限列表
+ */
+export function removeAuthRoutes() {
+  if (settings.enableSessionAuth) {
+    sessionStorage.removeItem(AuthRoutesKey);
+  } else {
+    localStorage.removeItem(AuthRoutesKey);
   }
 }
 
+/**
+ * 获取用户角色
+ */
 export function getRoleName() {
-  const name = localStorage.getItem(RoleName)
+  const name = settings.enableSessionAuth ? sessionStorage.getItem(RoleName) : localStorage.getItem(RoleName);
   if (name) {
     return Base64.decode(name)
   } else {
@@ -67,16 +108,22 @@ export function getRoleName() {
   }
 }
 
+/**
+ * 设置用户角色
+ */
 export function setRoleName(roleName) {
-  localStorage.setItem(RoleName, Base64.encode(roleName))
-}
-
-export function setUserName(name) {
-  localStorage.setItem(UserName, Base64.encode(name))
+  if (settings.enableSessionAuth) {
+    sessionStorage.setItem(RoleName, Base64.encode(roleName));
+  } else {
+    localStorage.setItem(RoleName, Base64.encode(roleName))
+  }
 }
 
+/**
+ * 获取用户名
+ */
 export function getUserName() {
-  const name = localStorage.getItem(UserName)
+  const name = settings.enableSessionAuth ? sessionStorage.getItem(UserName) : localStorage.getItem(UserName);
   if (name) {
     return Base64.decode(name)
   } else {
@@ -84,15 +131,36 @@ export function getUserName() {
   }
 }
 
-export function setEmail(email) {
-  localStorage.setItem(EmailName, Base64.encode(email))
+/**
+ * 设置用户名
+ */
+export function setUserName(name) {
+  if (settings.enableSessionAuth) {
+    sessionStorage.setItem(UserName, Base64.encode(name));
+  } else {
+    localStorage.setItem(UserName, Base64.encode(name))
+  }
 }
 
+/**
+ * 获取邮箱地址
+ */
 export function getEmail() {
-  const name = localStorage.getItem(EmailName)
+  const name = settings.enableSessionAuth ? sessionStorage.getItem(EmailName) : localStorage.getItem(EmailName);
   if (name) {
     return Base64.decode(name)
   } else {
     return "";
   }
+}
+
+/**
+ * 设置邮箱地址
+ */
+export function setEmail(email) {
+  if (settings.enableSessionAuth) {
+    sessionStorage.setItem(EmailName, Base64.encode(email));
+  } else {
+    localStorage.setItem(EmailName, Base64.encode(email));
+  }
 }