package com.iailab.module.system.dal.dataobject.oauth2; import com.iailab.framework.common.enums.UserTypeEnum; import com.iailab.framework.tenant.core.db.TenantBaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.Data; import lombok.EqualsAndHashCode; import java.time.LocalDateTime; import java.util.List; import java.util.Map; /** * OAuth2 访问令牌 DO * * 如下字段,暂时未使用,暂时不支持: * user_name、authentication(用户信息) * * @author iailab */ @TableName(value = "system_oauth2_access_token", autoResultMap = true) @KeySequence("system_oauth2_access_token_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) public class OAuth2AccessTokenDO extends TenantBaseDO { /** * 编号,数据库递增 */ @TableId private Long id; /** * 访问令牌 */ private String accessToken; /** * 刷新令牌 */ private String refreshToken; /** * 用户编号 */ private Long userId; /** * 用户类型 * * 枚举 {@link UserTypeEnum} */ private Integer userType; /** * 用户信息 */ @TableField(typeHandler = JacksonTypeHandler.class) private Map userInfo; /** * 客户端编号 * * 关联 {@link OAuth2ClientDO#getId()} */ private String clientId; /** * 授权范围 */ @TableField(typeHandler = JacksonTypeHandler.class) private List scopes; /** * 过期时间 */ private LocalDateTime expiresTime; }