LingAdmin/Backend/Services/Shared/LingAdmin.Shared/DTOs/AuthDtos.cs

103 lines
2.3 KiB
C#
Raw Permalink Normal View History

2026-04-16 18:13:06 +08:00
namespace LingAdmin.Shared.DTOs;
#region DTOs
/// <summary>
/// 用户注册请求
/// </summary>
public class RegisterRequest
{
public required string Name { get; set; }
public required string Email { get; set; }
public required string Password { get; set; }
public string? PhoneNumber { get; set; }
}
/// <summary>
/// 用户登录请求
/// </summary>
public class LoginRequest
{
public required string Email { get; set; }
public required string Password { get; set; }
public bool RememberMe { get; set; } = false;
}
/// <summary>
/// 刷新令牌请求
/// </summary>
public class RefreshTokenRequest
{
public required string RefreshToken { get; set; }
}
/// <summary>
/// 修改密码请求
/// </summary>
public class ChangePasswordRequest
{
public required string CurrentPassword { get; set; }
public required string NewPassword { get; set; }
public required string ConfirmPassword { get; set; }
}
/// <summary>
/// 重置密码请求
/// </summary>
public class ResetPasswordRequest
{
public required string Token { get; set; }
public required string NewPassword { get; set; }
public required string ConfirmPassword { get; set; }
}
/// <summary>
/// 请求重置密码
/// </summary>
public class ForgotPasswordRequest
{
public required string Email { get; set; }
}
#endregion
#region DTOs
/// <summary>
/// 用户信息 DTO
/// </summary>
public class UserDto
{
public int Id { get; set; }
public required string Name { get; set; }
public required string Email { get; set; }
public required string Status { get; set; }
public List<string> Roles { get; set; } = new();
public List<string> Permissions { get; set; } = new();
public DateTime CreatedAt { get; set; }
public DateTime? LastLoginAt { get; set; }
}
/// <summary>
/// 登录响应
/// </summary>
public class LoginResponse
{
public required string AccessToken { get; set; }
public required string RefreshToken { get; set; }
public required UserDto User { get; set; }
public DateTime ExpiresAt { get; set; }
}
/// <summary>
/// Token 刷新响应
/// </summary>
public class TokenRefreshResponse
{
public required string AccessToken { get; set; }
public required string RefreshToken { get; set; }
public DateTime ExpiresAt { get; set; }
}
#endregion