网站首页 网站源码
using Dpz.Core.Infrastructure.Entity;
namespace Dpz.Core.Public.Entity;
[BsonIgnoreExtraElements ]
public class AccountToken:BaseEntity
{
/// <summary>
/// 账号
/// </summary>
public required string Account { get; set; }
/// <summary>
/// token 使用平台
/// </summary>
[BsonRepresentation(BsonType.String)]
public TokenPlatform Platform { get; set; }
/// <summary>
/// 刷新Token
/// </summary>
public required string RefreshToken { get; set; }
/// <summary>
/// 刷新Token过期时间
/// </summary>
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime RefreshTokenExpiryTime { get; set; }
/// <summary>
/// 首次生成时间
/// </summary>
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime FirstGenerateTime { get; set; } = DateTime.Now;
/// <summary>
/// 生成时的 IP 地址
/// </summary>
public string IpAddress { get; set; }
/// <summary>
/// 生成时的 User-Agent
/// </summary>
public string UserAgent { get; set; }
/// <summary>
/// 是否使用
/// </summary>
public bool? Used { get; set; }
}
上述代码定义了一个名为 AccountToken
的类,它继承自 BaseEntity
,并且使用了 MongoDB 的一些特性来进行数据持久化。这个类主要用于表示与用户账户相关的令牌(Token)信息,通常用于身份验证和授权的场景。以下是对代码中各个部分的详细解释:
命名空间:
Dpz.Core.Public.Entity
:表示这个类属于 Dpz.Core
项目的公共实体部分。特性:
[BsonIgnoreExtraElements]
:这个特性用于指示 MongoDB 在反序列化时忽略额外的字段。这意味着如果数据库中有 AccountToken
类中未定义的字段,它们将不会导致错误。属性:
Account
:一个必需的字符串属性,表示用户的账号。Platform
:一个枚举类型 TokenPlatform
,表示令牌使用的平台。使用了 [BsonRepresentation(BsonType.String)]
特性,表示在 MongoDB 中以字符串形式存储该枚举。RefreshToken
:一个必需的字符串属性,表示用于刷新访问令牌的令牌。RefreshTokenExpiryTime
:一个 DateTime
类型的属性,表示刷新令牌的过期时间。使用了 [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
特性,表示在 MongoDB 中以本地时间存储。FirstGenerateTime
:一个 DateTime
类型的属性,表示首次生成令牌的时间,默认值为当前时间(DateTime.Now
)。IpAddress
:一个字符串属性,表示生成令牌时的 IP 地址。UserAgent
:一个字符串属性,表示生成令牌时的用户代理(User-Agent),通常用于识别客户端应用程序。Used
:一个可空的布尔值,表示该令牌是否已被使用。AccountToken
类的主要功能是存储与用户账户相关的令牌信息,包括账号、令牌、过期时间、生成时间、生成时的 IP 地址和用户代理等。这些信息通常用于实现安全的身份验证和授权机制,确保用户的会话安全。