LoginResponse.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.xuekairui.user.dto;
  2. import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  3. import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  4. import lombok.Data;
  5. import lombok.Builder;
  6. import lombok.NoArgsConstructor;
  7. import lombok.AllArgsConstructor;
  8. /**
  9. * 登录响应
  10. */
  11. @Data
  12. @Builder
  13. @NoArgsConstructor
  14. @AllArgsConstructor
  15. public class LoginResponse {
  16. /** 用户ID(String 序列化,避免前端 JS 大数精度丢失) */
  17. @JsonSerialize(using = ToStringSerializer.class)
  18. private Long userId;
  19. /** 访问令牌 */
  20. private String accessToken;
  21. /** 刷新令牌 */
  22. private String refreshToken;
  23. /** 令牌过期时间(秒) */
  24. private Long expiresIn;
  25. /** 用户信息 */
  26. private UserInfoResponse userInfo;
  27. /** 是否需要绑定手机号 */
  28. private Boolean needBindPhone;
  29. /** 临时令牌(用于绑定手机号) */
  30. private String tempToken;
  31. /** 是否为新用户(首次注册) */
  32. private Boolean newUser;
  33. /** 用户角色:USER/ADMIN/SUPER_ADMIN */
  34. private String role;
  35. /** 是否踢出了旧设备会话(是否有旧会话被强制终止) */
  36. private Boolean kickedPreviousSession;
  37. /** 被踢出的旧设备信息(如 "Windows Chrome / 192.168.1.1") */
  38. private String kickedDeviceInfo;
  39. }