auth.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { useCache } from '@/hooks/web/useCache'
  2. import { TokenType } from '@/api/login/types'
  3. import { decrypt, encrypt } from '@/utils/jsencrypt'
  4. const { wsCache } = useCache()
  5. const AccessTokenKey = 'ACCESS_TOKEN'
  6. const RefreshTokenKey = 'REFRESH_TOKEN'
  7. // 获取token
  8. export const getAccessToken = () => {
  9. // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
  10. return wsCache.get('ACCESS_TOKEN')
  11. }
  12. // 刷新token
  13. export const getRefreshToken = () => {
  14. return wsCache.get(RefreshTokenKey)
  15. }
  16. // 设置token
  17. export const setToken = (token: TokenType) => {
  18. wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime })
  19. wsCache.set(AccessTokenKey, token.accessToken)
  20. }
  21. // 删除token
  22. export const removeToken = () => {
  23. wsCache.delete(AccessTokenKey)
  24. wsCache.delete(RefreshTokenKey)
  25. }
  26. // ========== 账号相关 ==========
  27. const UsernameKey = 'USERNAME'
  28. const PasswordKey = 'PASSWORD'
  29. const RememberMeKey = 'REMEMBER_ME'
  30. export const getUsername = () => {
  31. return wsCache.get(UsernameKey)
  32. }
  33. export const setUsername = (username: string) => {
  34. wsCache.set(UsernameKey, username)
  35. }
  36. export const removeUsername = () => {
  37. wsCache.delete(UsernameKey)
  38. }
  39. export const getPassword = () => {
  40. const password = wsCache.get(PasswordKey)
  41. return password ? decrypt(password) : undefined
  42. }
  43. export const setPassword = (password: string) => {
  44. wsCache.set(PasswordKey, encrypt(password))
  45. }
  46. export const removePassword = () => {
  47. wsCache.delete(PasswordKey)
  48. }
  49. export const getRememberMe = () => {
  50. return wsCache.get(RememberMeKey) === 'true'
  51. }
  52. export const setRememberMe = (rememberMe: string) => {
  53. wsCache.set(RememberMeKey, rememberMe)
  54. }
  55. export const removeRememberMe = () => {
  56. wsCache.delete(RememberMeKey)
  57. }
  58. // ========== 租户相关 ==========
  59. const TenantIdKey = 'TENANT_ID'
  60. const TenantNameKey = 'TENANT_NAME'
  61. export const getTenantName = () => {
  62. return wsCache.get(TenantNameKey)
  63. }
  64. export const setTenantName = (username: string) => {
  65. wsCache.set(TenantNameKey, username)
  66. }
  67. export const removeTenantName = () => {
  68. wsCache.delete(TenantNameKey)
  69. }
  70. export const getTenantId = () => {
  71. return wsCache.get(TenantIdKey)
  72. }
  73. export const setTenantId = (username: string) => {
  74. wsCache.set(TenantIdKey, username)
  75. }
  76. export const removeTenantId = () => {
  77. wsCache.delete(TenantIdKey)
  78. }