auth.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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(AccessTokenKey) ? wsCache.get(AccessTokenKey) : 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. /** 格式化token(jwt格式) */
  27. export const formatToken = (token: string): string => {
  28. return 'Bearer ' + token
  29. }
  30. // ========== 账号相关 ==========
  31. const UsernameKey = 'USERNAME'
  32. const PasswordKey = 'PASSWORD'
  33. const RememberMeKey = 'REMEMBER_ME'
  34. export const getUsername = () => {
  35. return wsCache.get(UsernameKey)
  36. }
  37. export const setUsername = (username: string) => {
  38. wsCache.set(UsernameKey, username, { exp: 30 * 24 * 60 * 60 })
  39. }
  40. export const removeUsername = () => {
  41. wsCache.delete(UsernameKey)
  42. }
  43. export const getPassword = () => {
  44. const password = wsCache.get(PasswordKey)
  45. return password ? decrypt(password) : undefined
  46. }
  47. export const setPassword = (password: string) => {
  48. wsCache.set(PasswordKey, encrypt(password), { exp: 30 * 24 * 60 * 60 })
  49. }
  50. export const removePassword = () => {
  51. wsCache.delete(PasswordKey)
  52. }
  53. export const getRememberMe = () => {
  54. return wsCache.get(RememberMeKey) === true
  55. }
  56. export const setRememberMe = (rememberMe: boolean) => {
  57. wsCache.set(RememberMeKey, rememberMe, { exp: 30 * 24 * 60 * 60 })
  58. }
  59. export const removeRememberMe = () => {
  60. wsCache.delete(RememberMeKey)
  61. }
  62. // ========== 租户相关 ==========
  63. const TenantIdKey = 'TENANT_ID'
  64. const TenantNameKey = 'TENANT_NAME'
  65. export const getTenantName = () => {
  66. return wsCache.get(TenantNameKey)
  67. }
  68. export const setTenantName = (username: string) => {
  69. wsCache.set(TenantNameKey, username, { exp: 30 * 24 * 60 * 60 })
  70. }
  71. export const removeTenantName = () => {
  72. wsCache.delete(TenantNameKey)
  73. }
  74. export const getTenantId = () => {
  75. return wsCache.get(TenantIdKey)
  76. }
  77. export const setTenantId = (username: string) => {
  78. wsCache.set(TenantIdKey, username)
  79. }
  80. export const removeTenantId = () => {
  81. wsCache.delete(TenantIdKey)
  82. }