auth.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import Cookies from 'js-cookie'
  2. const TOKEN_KEY = 'sso_access_token'
  3. const REFRESH_TOKEN_KEY = 'sso_refresh_token'
  4. // 获取token
  5. export function getToken(): string | null {
  6. return Cookies.get(TOKEN_KEY) || localStorage.getItem(TOKEN_KEY)
  7. }
  8. // 获取refresh token
  9. export function getRefreshToken(): string | null {
  10. return Cookies.get(REFRESH_TOKEN_KEY) || localStorage.getItem(REFRESH_TOKEN_KEY)
  11. }
  12. // 设置token
  13. export function setToken(token: string, refreshToken?: string, rememberMe = false): void {
  14. if (rememberMe) {
  15. // 记住我,使用cookie存储,有效期30天
  16. Cookies.set(TOKEN_KEY, token, { expires: 30 })
  17. if (refreshToken) {
  18. Cookies.set(REFRESH_TOKEN_KEY, refreshToken, { expires: 30 })
  19. }
  20. } else {
  21. // 不记住我,使用sessionStorage存储
  22. localStorage.setItem(TOKEN_KEY, token)
  23. if (refreshToken) {
  24. localStorage.setItem(REFRESH_TOKEN_KEY, refreshToken)
  25. }
  26. }
  27. }
  28. // 移除token
  29. export function removeToken(): void {
  30. Cookies.remove(TOKEN_KEY)
  31. Cookies.remove(REFRESH_TOKEN_KEY)
  32. localStorage.removeItem(TOKEN_KEY)
  33. localStorage.removeItem(REFRESH_TOKEN_KEY)
  34. }
  35. // 检查token是否存在
  36. export function hasToken(): boolean {
  37. return !!getToken()
  38. }