网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
namespace Dpz.Core.Service.RepositoryService;

/// <summary>
/// 密码迁移服务接口
/// 用于将旧版本无盐密码迁移到新版本加盐密码
/// </summary>
public interface IPasswordMigrationService
{
    /// <summary>
    /// 检查用户是否需要密码迁移
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <returns>是否需要迁移</returns>
    Task<bool> NeedsMigrationAsync(string userId);

    /// <summary>
    /// 为单个用户迁移密码(在用户下次登录时自动执行)
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="plainPassword">用户输入的明文密码</param>
    /// <returns>迁移结果</returns>
    Task<bool> MigrateUserPasswordAsync(string userId, string plainPassword);

    /// <summary>
    /// 批量迁移所有旧版本密码用户
    /// 注意:此方法只能迁移使用默认密码的用户
    /// </summary>
    /// <returns>成功迁移的用户数量</returns>
    Task<int> BatchMigrateDefaultPasswordUsersAsync();

    /// <summary>
    /// 获取需要迁移的用户统计信息
    /// </summary>
    /// <returns>需要迁移的用户数量</returns>
    Task<int> GetMigrationPendingCountAsync();
}
loading