Implement authentication

This commit is contained in:
2025-06-14 01:05:44 +04:00
parent 912bf3c8f0
commit 16c7e94345
20 changed files with 401 additions and 25 deletions

View File

@@ -0,0 +1,23 @@
#include "UserManager.h"
#include <drogon/utils/Utilities.h>
#include "dependency_injection/DependencyContainer.h"
#include "models/User.h"
#include "services/encryption/PasswordEncryptor.h"
UserManager::UserManager()
{
m_passwordEncryptor = DependencyContainer::Resolve<PasswordEncryptor>();
}
bool UserManager::validateCredentials(const User& userData, std::string&& rawPassword)
{
auto hashedPassword = hashPassword(std::move(rawPassword));
auto base64Hash = drogon::utils::base64Encode(hashedPassword.data(), hashedPassword.size());
return base64Hash == userData.passwordHash;
}
std::vector<uint8_t> UserManager::hashPassword(std::string&& rawPassword)
{
return m_passwordEncryptor->encryptPassword(std::move(rawPassword));
}