ini
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
namespace AuthHex.Models
|
||||
{
|
||||
public class Recovery
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid? UserId { get; set; }
|
||||
public User? User { get; set; }
|
||||
|
||||
public string? RecoveryReferenceNum { get; set; }
|
||||
|
||||
// For OTP-based recovery
|
||||
public string? OTP { get; set; }
|
||||
public string? OTPReferenceNum { get; set; }
|
||||
|
||||
|
||||
// For Token-based reset (SECURE - hashed)
|
||||
public string? ResetTokenHash { get; set; }
|
||||
public string? ResetToken { get; set; } // Plain token (only for email, not saved)
|
||||
|
||||
|
||||
public string Status { get; set; } = "Pending"; // Pending, Used, Expired
|
||||
public bool IsUsed { get; set; } = false; // Prevent token reuse
|
||||
|
||||
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime ExpirationTime { get; set; } = DateTime.UtcNow.AddMinutes(15);
|
||||
|
||||
// Recovery type: OTP or ResetLink
|
||||
public string RecoveryType { get; set; } = "OTP"; // OTP, ResetLink
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user