Fix bad practice for account

This commit is contained in:
2025-07-24 21:07:06 -07:00
parent 36412a5139
commit 5209fd9bfc
3 changed files with 26 additions and 14 deletions
+3 -1
View File
@@ -9,12 +9,14 @@ CREATE TABLE IF NOT EXISTS `Account` (
`Email` varchar(255) NOT NULL, `Email` varchar(255) NOT NULL,
`EmailVerified` boolean DEFAULT 0, `EmailVerified` boolean DEFAULT 0,
`PasswordHash` char(60) DEFAULT NULL, `PasswordHash` char(60) DEFAULT NULL,
`LoginToken` binary(16) DEFAULT NULL,
`FailedPasswordLock` boolean DEFAULT 0, `FailedPasswordLock` boolean DEFAULT 0,
`PasswordAttempts` int(11) DEFAULT NULL, `PasswordAttempts` int(11) DEFAULT NULL,
`CurrentPasswordAttempts` int(11) DEFAULT NULL, `CurrentPasswordAttempts` int(11) DEFAULT NULL,
`Role` varchar(45) DEFAULT NULL, `Role` varchar(45) DEFAULT NULL,
`EmailToken` varchar(45) DEFAULT NULL, `EmailToken` varchar(45) DEFAULT NULL,
`EmailTokenCreation` datetime,
`PasswordToken` varchar(45) DEFAULT NULL,
`PasswordTokenCreation` datetime,
`DataServer` varchar(200) DEFAULT NULL, `DataServer` varchar(200) DEFAULT NULL,
UNIQUE(`Email`), UNIQUE(`Email`),
UNIQUE(`UserName`), UNIQUE(`UserName`),
+3 -1
View File
@@ -5,12 +5,14 @@ namespace Auth.Entities {
public string Email { get; set; } = ""; public string Email { get; set; } = "";
public bool EmailVerified { get; set; } = false; public bool EmailVerified { get; set; } = false;
public string PasswordHash { get; set; } = ""; public string PasswordHash { get; set; } = "";
public Guid LoginToken { get; set; } = new Guid();
public bool FailedPasswordLock { get; set; } = false; public bool FailedPasswordLock { get; set; } = false;
public int PasswordAttempts { get; set; } = 5; public int PasswordAttempts { get; set; } = 5;
public int CurrentPasswordAttempts { get; set; } = 0; public int CurrentPasswordAttempts { get; set; } = 0;
public string Role { get; set; } = "Generic"; public string Role { get; set; } = "Generic";
public string EmailToken { get; set; } = ""; public string EmailToken { get; set; } = "";
public DateTime EmailTokenCreated { get; set; }
public string PasswordToken { get; set; } = "";
public DateTime PasswordTokenCreated { get; set; }
public string DataServer { get; set; } = ""; public string DataServer { get; set; } = "";
} }
} }
+20 -12
View File
@@ -32,21 +32,23 @@ namespace Auth.Services.DatabaseService {
int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" ); int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" );
string _role = reader.GetString( "Role" ); string _role = reader.GetString( "Role" );
string _emailtoken = reader.GetString( "EmailToken" ); string _emailtoken = reader.GetString( "EmailToken" );
DateTime _emailtokencreated = reader.GetDateTime( "EmailTokenCreation" );
string _passwordtoken = reader.GetString( "PasswordToken" );
DateTime _passwordtokencreated = reader.GetDateTime( "PasswordTokenCreation" );
string _dataserver = reader.GetString( "DataServer" ); string _dataserver = reader.GetString( "DataServer" );
byte[] _loginToken = new byte[16];
reader.GetBytes( reader.GetOrdinal("LoginToken"), 0, _loginToken, 0, 16);
account = new Account() { account = new Account() {
ID = _id, ID = _id,
UserName = _username, UserName = _username,
Email = _email, Email = _email,
EmailVerified = _emailVerified, EmailVerified = _emailVerified,
PasswordHash = _passwordhash, PasswordHash = _passwordhash,
LoginToken = new Guid(_loginToken),
CurrentPasswordAttempts = _curpasswordattempts, CurrentPasswordAttempts = _curpasswordattempts,
PasswordAttempts = _passwordattempts, PasswordAttempts = _passwordattempts,
EmailToken = _emailtoken, EmailToken = _emailtoken,
EmailTokenCreated = _emailtokencreated,
PasswordToken = _passwordtoken,
PasswordTokenCreated = _passwordtokencreated,
FailedPasswordLock = _failedpasswordlock, FailedPasswordLock = _failedpasswordlock,
Role = _role, Role = _role,
DataServer = _dataserver DataServer = _dataserver
@@ -85,21 +87,23 @@ namespace Auth.Services.DatabaseService {
int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" ); int _curpasswordattempts = reader.GetInt32( "CurrentPasswordAttempts" );
string _role = reader.GetString( "Role" ); string _role = reader.GetString( "Role" );
string _emailtoken = reader.GetString( "EmailToken" ); string _emailtoken = reader.GetString( "EmailToken" );
DateTime _emailtokencreated = reader.GetDateTime( "EmailTokenCreation" );
string _passwordtoken = reader.GetString( "PasswordToken" );
DateTime _passwordtokencreated = reader.GetDateTime( "PasswordTokenCreation" );
string _dataserver = reader.GetString("DataServer"); string _dataserver = reader.GetString("DataServer");
byte[] _loginToken = new byte[16];
reader.GetBytes( reader.GetOrdinal("LoginToken"), 0, _loginToken, 0, 16);
account = new Account() { account = new Account() {
ID = _id, ID = _id,
UserName = _username, UserName = _username,
Email = _email, Email = _email,
EmailVerified = _emailVerified, EmailVerified = _emailVerified,
PasswordHash = _passwordhash, PasswordHash = _passwordhash,
LoginToken = new Guid(_loginToken),
CurrentPasswordAttempts = _passwordattempts, CurrentPasswordAttempts = _passwordattempts,
PasswordAttempts = _passwordattempts, PasswordAttempts = _passwordattempts,
EmailToken = _emailtoken, EmailToken = _emailtoken,
EmailTokenCreated = _emailtokencreated,
PasswordToken = _passwordtoken,
PasswordTokenCreated = _passwordtokencreated,
FailedPasswordLock = _failedpasswordlock, FailedPasswordLock = _failedpasswordlock,
Role = _role, Role = _role,
DataServer = _dataserver DataServer = _dataserver
@@ -116,20 +120,22 @@ namespace Auth.Services.DatabaseService {
string command = @" string command = @"
INSERT INTO Account INSERT INTO Account
(ID,UserName,Email,EmailVerified,PasswordHash,LoginToken,FailedPasswordLock,PasswordAttempts,CurrentPasswordAttempts,Role,EmailToken,DataServer) (ID,UserName,Email,EmailVerified,PasswordHash,FailedPasswordLock,PasswordAttempts,CurrentPasswordAttempts,Role,EmailToken,EmailTokenCreation,PasswordToken,PasswordTokenCreation,DataServer)
VALUES VALUES
(@ID,@UserName,@Email,@EmailVerified,@PasswordHash,@LoginToken,@FailedPasswordLock,@PasswordAttempts,@CurrentPasswordAttempts,@Role,@EmailToken,@DataServer) (@ID,@UserName,@Email,@EmailVerified,@PasswordHash,@FailedPasswordLock,@PasswordAttempts,@CurrentPasswordAttempts,@Role,@EmailToken,@EmailTokenCreation,@PasswordToken,@PasswordTokenCreation,@DataServer)
ON DUPLICATE KEY UPDATE ON DUPLICATE KEY UPDATE
UserName = @UserName, UserName = @UserName,
Email = @Email, Email = @Email,
EmailVerified = @EmailVerified, EmailVerified = @EmailVerified,
PasswordHash = @PasswordHash, PasswordHash = @PasswordHash,
LoginToken = @LoginToken,
FailedPasswordLock = @FailedPasswordLock, FailedPasswordLock = @FailedPasswordLock,
PasswordAttempts = @PasswordAttempts, PasswordAttempts = @PasswordAttempts,
CurrentPasswordAttempts = @CurrentPasswordAttempts, CurrentPasswordAttempts = @CurrentPasswordAttempts,
Role = @Role, Role = @Role,
EmailToken = @EmailToken, EmailToken = @EmailToken,
EmailTokenCreation = @EmailTokenCreation,
PasswordToken = @PasswordToken,
PasswordTokenCreation = @PasswordTokenCreation,
DataServer = @DataServer; DataServer = @DataServer;
"; ";
@@ -139,12 +145,14 @@ namespace Auth.Services.DatabaseService {
cmd.Parameters.AddWithValue("@Email", Profile.Email); cmd.Parameters.AddWithValue("@Email", Profile.Email);
cmd.Parameters.AddWithValue("@EmailVerified", Profile.EmailVerified); cmd.Parameters.AddWithValue("@EmailVerified", Profile.EmailVerified);
cmd.Parameters.AddWithValue("@PasswordHash", Profile.PasswordHash); cmd.Parameters.AddWithValue("@PasswordHash", Profile.PasswordHash);
cmd.Parameters.AddWithValue("@LoginToken", Profile.LoginToken.ToByteArray());
cmd.Parameters.AddWithValue("@FailedPasswordLock", Profile.FailedPasswordLock); cmd.Parameters.AddWithValue("@FailedPasswordLock", Profile.FailedPasswordLock);
cmd.Parameters.AddWithValue("@PasswordAttempts", Profile.PasswordAttempts); cmd.Parameters.AddWithValue("@PasswordAttempts", Profile.PasswordAttempts);
cmd.Parameters.AddWithValue("@CurrentPasswordAttempts", Profile.CurrentPasswordAttempts); cmd.Parameters.AddWithValue("@CurrentPasswordAttempts", Profile.CurrentPasswordAttempts);
cmd.Parameters.AddWithValue("@Role", Profile.Role); cmd.Parameters.AddWithValue("@Role", Profile.Role);
cmd.Parameters.AddWithValue("@EmailToken", Profile.EmailToken); cmd.Parameters.AddWithValue("@EmailToken", Profile.EmailToken);
cmd.Parameters.AddWithValue("@EmailTokenCreation", Profile.EmailTokenCreated);
cmd.Parameters.AddWithValue("@PasswordToken", Profile.PasswordToken);
cmd.Parameters.AddWithValue("@PasswordTokenCreation", Profile.PasswordTokenCreated);
cmd.Parameters.AddWithValue("@DataServer", Profile.DataServer); cmd.Parameters.AddWithValue("@DataServer", Profile.DataServer);
await cmd.ExecuteNonQueryAsync(); await cmd.ExecuteNonQueryAsync();