| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /**
- * 存储管理工具
- */
- import { encryptAES, decryptAES } from './crypto'
- const ACCESS_TOKEN_KEY = "access_token"
- const USER_INFO_KEY = "user_info"
- const REMEMBERED_ACCOUNT_KEY = "remembered_account"
- const IS_KEY = "is_key"
- /**
- * 保存 AccessToken
- */
- export const saveAccessToken = (token: string): void => {
- uni.setStorageSync(ACCESS_TOKEN_KEY, token)
- }
- /**
- * 获取 AccessToken
- */
- export const getAccessToken = (): string | null => {
- const token = uni.getStorageSync(ACCESS_TOKEN_KEY)
- if (token != null) {
- const tokenStr = token as string
- if (tokenStr.length > 0) {
- return tokenStr
- }
- }
- return null
- }
- /**
- * 清除 AccessToken
- */
- export const clearAccessToken = (): void => {
- uni.removeStorageSync(ACCESS_TOKEN_KEY)
- }
- /**
- * 保存用户信息
- */
- export const saveUserInfo = (userInfo: UTSJSONObject): void => {
- uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo))
- }
- /**
- * 获取用户信息
- */
- export const getUserInfo = (): UTSJSONObject | null => {
- const info = uni.getStorageSync(USER_INFO_KEY)
- if (info != null) {
- const infoStr = info as string
- if (infoStr.length > 0) {
- return JSON.parse(infoStr) as UTSJSONObject
- }
- }
- return null
- }
- /**
- * 清除用户信息
- */
- export const clearUserInfo = (): void => {
- uni.removeStorageSync(USER_INFO_KEY)
- }
- /**
- * 保存记住的账号密码
- * 密码会使用 AES 加密后保存
- */
- export const saveRememberedAccount = (username: string, password: string): void => {
- // 对密码进行 AES 加密
- const encryptedPassword = encryptAES(password)
- const data = {
- username: username,
- password: encryptedPassword
- }
- uni.setStorageSync(REMEMBERED_ACCOUNT_KEY, JSON.stringify(data))
- }
- /**
- * 获取记住的账号密码
- * 密码会自动解密
- */
- export const getRememberedAccount = (): UTSJSONObject | null => {
- const data = uni.getStorageSync(REMEMBERED_ACCOUNT_KEY)
- if (data != null) {
- const dataStr = data as string
- if (dataStr.length > 0) {
- const jsonData = JSON.parse(dataStr) as UTSJSONObject
- // 解密密码
- const encryptedPassword = jsonData['password'] as string
- const decryptedPassword = decryptAES(encryptedPassword)
- // 返回解密后的数据
- return {
- username: jsonData['username'],
- password: decryptedPassword
- }
- }
- }
- return null
- }
- /**
- * 清除记住的账号密码
- */
- export const clearRememberedAccount = (): void => {
- uni.removeStorageSync(REMEMBERED_ACCOUNT_KEY)
- }
- /**
- * 清除所有存储
- */
- export const clearAll = (): void => {
- clearAccessToken()
- clearUserInfo()
- }
- /**
- * 字符权限校验
- */
- export const checkPermi = (value: string[]): boolean => {
- if (value != null && value instanceof Array && value.length > 0) {
- const info = uni.getStorageSync(USER_INFO_KEY) as string
- const userObj = JSON.parse(info) as UTSJSONObject
- const permissions = userObj['permissions'] as UTSArray<string>
- const permissionDatas = value
- const all_permission = "*:*:*"
- const hasPermission = permissions.some((permission: string) => {
- return all_permission == permission || permissionDatas.includes(permission)
- })
- return hasPermission
- } else {
- return false
- }
- }
- export const saveStoreIsKey = (isKey:string): void => {
- uni.setStorageSync(IS_KEY, isKey)
- }
- export const getStoreIsKey = (): string | null => {
- const isKey = uni.getStorageSync(IS_KEY)
- if (isKey != null) {
- const isKeyStr = isKey as string
- if (isKeyStr.length > 0) {
- return isKeyStr
- }
- }
- return null
- }
|