token.ts 769 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { jwtDecode } from 'jwt-decode'
  2. export interface JwtPayload {
  3. iss: string
  4. id: string
  5. sub: string
  6. aud: string[] | string
  7. name: string
  8. displayName: string
  9. nbf: number
  10. iat: number
  11. jti: string
  12. exp: number // 过期时间
  13. isAdmin: boolean
  14. isDeleted: boolean
  15. isForbidden: boolean
  16. permissions: JwtPayloadPermission[]
  17. roles: JwtPayloadRole[]
  18. }
  19. export interface JwtPayloadPermission {
  20. name: string
  21. displayName: string
  22. description: string
  23. effect: string
  24. isEnabled: boolean
  25. state: string
  26. }
  27. export interface JwtPayloadRole {
  28. name: string
  29. displayName: string
  30. description: string
  31. isEnabled: string
  32. domains: string[]
  33. }
  34. export const parseJwtToken = (token: string): JwtPayload => {
  35. return jwtDecode<JwtPayload>(token)
  36. }