HuaweiHealthToken.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.etotem.cfc.entity;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableId;
  4. import com.baomidou.mybatisplus.annotation.TableName;
  5. import lombok.Data;
  6. import java.io.Serializable;
  7. import java.util.Date;
  8. /**
  9. * 华为运动健康 OAuth 令牌持久化记录。
  10. *
  11. * <p>token 仅后端持有(加密存库),不落小程序。仅面向「能登录用户(成人)」绑定,
  12. * member_id 指向 family_members.id;不能登录用户(儿童/代管)走手动导入通道,
  13. * 不在此表产生令牌。</p>
  14. *
  15. * <p>字段与方案 v1.2 第六节 D1 保持一致:member_id/access_token/refresh_token/expires_at/scope/
  16. * created_at/updated_at,附加 status 用于撤销授权合规。</p>
  17. */
  18. @Data
  19. @TableName("huawei_health_tokens")
  20. public class HuaweiHealthToken implements Serializable {
  21. @TableId(type = IdType.AUTO)
  22. private Long id;
  23. /** 家庭成员ID(family_members.id,唯一,一个成员一套华为令牌) */
  24. private Long memberId;
  25. /** 加密后的访问令牌(AES/GCM,仅后端持有) */
  26. private String accessToken;
  27. /** 加密后的刷新令牌(AES/GCM,仅后端持有) */
  28. private String refreshToken;
  29. /** 访问令牌过期时间 */
  30. private Date expiresAt;
  31. /** 授权范围(华为数据类型逗号分隔,如 step,distance,heart_rate,sleep,body_weight) */
  32. private String scope;
  33. /** 状态:ACTIVE=有效,REVOKED=已撤销 */
  34. private String status;
  35. private Date createdAt;
  36. private Date updatedAt;
  37. }