网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using Dpz.Core.Public.Entity.Auth;
using MongoDB.Bson;

namespace Dpz.Core.Auth.Models;

public class PageTokenModel
{
    public string Id { get; set; } = string.Empty;
    

    /// <summary>
    /// 应用程序标识符(对应客户端 ClientId)
    /// </summary>
    public string ApplicationId { get; set; } = string.Empty;
    
    /// <summary>
    /// 应用程序名称
    /// </summary>
    public string? ApplicationName { get; set; }

    /// <summary>
    /// 授权标识符(如授权码流程中的 AuthorizationId)
    /// </summary>
    public string AuthorizationId { get; set; } = string.Empty;

    /// <summary>
    ///  并发标识,用于乐观并发控制
    /// </summary>
    public string? ConcurrencyToken { get; set; }

    /// <summary>
    ///  创建时间(UTC)
    /// </summary>
    public DateTime? CreationDate { get; set; }

    /// <summary>
    /// 过期时间(UTC)
    /// </summary>
    public DateTime? ExpirationDate { get; set; }

    /// <summary>
    /// 令牌负载(仅用于引用令牌),可能已加密
    /// </summary>
    public string? Payload { get; set; }

    /// <summary>
    /// 附加属性(如自定义元数据、扩展字段)
    /// </summary>
    public BsonDocument? Properties { get; set; }

    /// <summary>
    /// 兑换时间(UTC),表示令牌是否已被使用(如授权码)
    /// </summary>
    public DateTime? RedemptionDate { get; set; }

    /// <summary>
    /// 引用标识符,仅用于引用令牌(Reference Token),可能已加密或哈希
    /// </summary>
    public string? ReferenceId { get; set; }

    /// <summary>
    /// 令牌状态(如 valid、revoked、expired)
    /// </summary>
    public string? Status { get; set; }

    /// <summary>
    /// 令牌状态名称
    /// </summary>
    public string StatusName => AuthHelper.GetTokenStatusDescription(Status);

    /// <summary>
    /// 主体标识(通常是用户的 sub 声明)
    /// </summary>
    public string? Subject { get; set; }

    /// <summary>
    /// 令牌类型(access_token、refresh_token、authorization_code 等)
    /// </summary>
    public string? Type { get; set; }
    
    /// <summary>
    /// 令牌类型名称
    /// </summary>
    public string TypeName => AuthHelper.GetTokenTypeDescription(Type);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 PageTokenModel 的 C# 类,主要用于表示与身份验证和授权相关的令牌信息。这个类包含了多个属性,旨在存储与令牌相关的各种数据。以下是对每个属性的详细解释:

  1. Id: 令牌的唯一标识符,通常是一个字符串。

  2. ApplicationId: 应用程序的标识符,通常对应于客户端的 ClientId,用于识别发起请求的应用程序。

  3. ApplicationName: 应用程序的名称,可能是可选的(string?),用于提供更具描述性的应用程序信息。

  4. AuthorizationId: 授权标识符,通常在授权码流程中使用,表示特定的授权请求。

  5. ConcurrencyToken: 用于乐观并发控制的标识符,确保在并发环境中对令牌的操作是安全的。

  6. CreationDate: 令牌的创建时间,使用 UTC 时间格式。

  7. ExpirationDate: 令牌的过期时间,使用 UTC 时间格式,指示令牌何时失效。

  8. Payload: 令牌的负载,通常用于引用令牌,可能包含加密的数据。

  9. Properties: 附加属性,使用 BsonDocument 类型,可以存储自定义元数据或扩展字段,提供灵活性。

  10. RedemptionDate: 兑换时间,表示令牌是否已被使用,通常在授权码流程中使用。

  11. ReferenceId: 引用标识符,仅用于引用令牌,可能已加密或哈希,用于标识令牌的引用。

  12. Status: 令牌的状态,可能的值包括 valid(有效)、revoked(撤销)和 expired(过期)。

  13. StatusName: 通过调用 AuthHelper.GetTokenStatusDescription(Status) 方法获取令牌状态的描述名称,提供更易读的状态信息。

  14. Subject: 主体标识,通常是用户的 sub 声明,表示与令牌相关的用户或主体。

  15. Type: 令牌的类型,例如 access_tokenrefresh_tokenauthorization_code 等。

  16. TypeName: 通过调用 AuthHelper.GetTokenTypeDescription(Type) 方法获取令牌类型的描述名称,提供更易读的类型信息。

总结

PageTokenModel 类的主要功能是封装与身份验证和授权相关的令牌信息,提供了多种属性来存储令牌的状态、类型、创建和过期时间等信息。这使得在处理身份验证和授权时,可以方便地管理和使用这些令牌。该类还利用了 MongoDB 的 BsonDocument 类型来支持灵活的属性存储。

loading