Fix changing password in frontend

This commit is contained in:
Reimar 2025-04-09 09:43:52 +02:00
parent 2e5334001f
commit d25b72c3db
Signed by: Reimar
GPG Key ID: 93549FA07F0AE268
4 changed files with 81 additions and 83 deletions

View File

@ -4,6 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<title>Register - Temperature Alarm</title> <title>Register - Temperature Alarm</title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/styles/common.css">
<link rel="stylesheet" href="/styles/auth.css"> <link rel="stylesheet" href="/styles/auth.css">
<link rel="stylesheet" href="/styles/profile.css"> <link rel="stylesheet" href="/styles/profile.css">
<script defer type="module" src="/scripts/profile.js"></script> <script defer type="module" src="/scripts/profile.js"></script>
@ -67,7 +68,7 @@
<button type="submit">Change Password</button> <button type="submit">Change Password</button>
<div id="form-error"></div> <div id="password-error" class="error"></div>
</div> </div>
</form> </form>
</div> </div>

View File

@ -95,26 +95,23 @@ document
.addEventListener("submit", function (event) { .addEventListener("submit", function (event) {
event.preventDefault(); // Prevents default form submission event.preventDefault(); // Prevents default form submission
document.getElementById("form-error").style.display = "none"; document.getElementById("password-error").style.display = "none";
const oldPassword = document.getElementById("oldpsw").value; const oldPassword = document.getElementById("oldpsw").value;
const newPassword = document.getElementById("psw").value; const newPassword = document.getElementById("psw").value;
const repeatPassword = document.getElementById("rpsw").value; const repeatPassword = document.getElementById("rpsw").value;
if (newPassword !== repeatPassword) { if (newPassword !== repeatPassword) {
let errorDiv = document.getElementById("form-error"); document.getElementById("password-error").style.display = "block";
errorDiv.style.display = "block"; document.getElementById("password-error").innerText = "Passwords do not match!";
errorDiv.innerText = "Passwords do not match!";
return; return;
} }
updatePassword(oldPassword, newPassword).then((response) => { updatePassword(oldPassword, newPassword)
//error messages do not work .then(() => location.reload())
if (response.error) { .catch(error => {
document.getElementById("form-error").innerText = response.message; document.getElementById("password-error").innerText = error;
document.getElementById("form-error").style.display = "block"; document.getElementById("password-error").style.display = "block";
return;
}
}); });
}); });

View File

@ -39,7 +39,7 @@ export function update(email, username){
} }
export function updatePassword(oldPassword, newPassword){ export function updatePassword(oldPassword, newPassword){
return request("PUT", "/user/update-password", { return request("PUT", "/user/change-password", {
oldPassword, oldPassword,
newPassword, newPassword,
}); });

View File

@ -42,11 +42,12 @@ export async function request(method, path, body = null) {
export function checkTokens() { export function checkTokens() {
var token = document.cookie.match(/\bauth-token=([^;\s]+)/); var token = document.cookie.match(/\bauth-token=([^;\s]+)/);
if (token != null) { if (token != null) {
return token[1] return token[1];
} }
const match = document.cookie.match(/\brefresh-token=([^;\s]+)/); const match = document.cookie.match(/\brefresh-token=([^;\s]+)/);
token = match ? match[1] : null; token = match ? match[1] : null;
console.log("refresh "+token);
if (token != null) { if (token != null) {
return fetch(`${address}/user/refreshtoken/${token}`, { return fetch(`${address}/user/refreshtoken/${token}`, {
method: "POST", method: "POST",
@ -56,7 +57,7 @@ export function checkTokens() {
}) })
.then(async response => { .then(async response => {
if (!response.ok) { if (!response.ok) {
window.location.href = "/login"; location.href = "/login";
return; return;
} }
@ -68,9 +69,8 @@ export function checkTokens() {
return json.token; return json.token;
}); });
} }
else{
window.location.href = "/login"; location.href = "/login";
}
} }
export function logout() { export function logout() {