diff --git a/src/auth/auth.cpp b/src/auth/auth.cpp index fe37f92..c2fb484 100644 --- a/src/auth/auth.cpp +++ b/src/auth/auth.cpp @@ -36,7 +36,7 @@ void auth(const httplib::Request &request, httplib::Response &response) { std::string userid; for (nlohmann::basic_json<> user: all_users) { - if ((user["username"] == request_username) && (user["password"] == hashPassword(request_password))) { + if ((user["username"] == request_username) && (user["password"] == request_password)) { userid = user["id"]; break; } diff --git a/src/web/js/login.js b/src/web/js/login.js index 7b4a376..d106c96 100644 --- a/src/web/js/login.js +++ b/src/web/js/login.js @@ -11,9 +11,20 @@ if (localStorage.getItem("token") === null) { loginformbody.addEventListener('submit', (e) => { e.preventDefault() - login(loginforminputusername.value, loginforminputpassword.value) + hashPassword(loginforminputpassword.value).then(hashedpassword => { + login(loginforminputusername.value, hashedpassword) + }) }) +const hashPassword = async (password) => { + const encoder = new TextEncoder() + const data = encoder.encode(password) + const hashBuffer = await crypto.subtle.digest('SHA-256', data) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map(b=>('00' + b.toString(16)).slice(-2)).join('') + return hashHex +} + const login = async (username, password) => { const response = await fetch(routes.login(), { method: 'POST',