From 0ea0b8b3c69080b83c458a2ad8e99bcf273c1423 Mon Sep 17 00:00:00 2001 From: Lorenz Hohermuth Date: Fri, 6 Jun 2025 09:06:58 +0200 Subject: [PATCH] password policy --- .../src/pages/user/LoginUser.js | 4 +- .../src/pages/user/RegisterUser.js | 94 ++++++++++--------- 2 files changed, 53 insertions(+), 45 deletions(-) diff --git a/183_12_2_tresorfrontend_rupe-master/src/pages/user/LoginUser.js b/183_12_2_tresorfrontend_rupe-master/src/pages/user/LoginUser.js index 88e75eb..fb5c1f1 100644 --- a/183_12_2_tresorfrontend_rupe-master/src/pages/user/LoginUser.js +++ b/183_12_2_tresorfrontend_rupe-master/src/pages/user/LoginUser.js @@ -33,7 +33,7 @@ function LoginUser({ loginValues, setLoginValues }) {
setLoginValues(prevValues => ({ ...prevValues, email: e.target.value }))} @@ -44,7 +44,7 @@ function LoginUser({ loginValues, setLoginValues }) {
setLoginValues(prevValues => ({ ...prevValues, password: e.target.value }))} diff --git a/183_12_2_tresorfrontend_rupe-master/src/pages/user/RegisterUser.js b/183_12_2_tresorfrontend_rupe-master/src/pages/user/RegisterUser.js index f8a866c..927db0b 100644 --- a/183_12_2_tresorfrontend_rupe-master/src/pages/user/RegisterUser.js +++ b/183_12_2_tresorfrontend_rupe-master/src/pages/user/RegisterUser.js @@ -1,12 +1,12 @@ import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; -import {postUser} from "../../comunication/FetchUser"; +import { postUser } from "../../comunication/FetchUser"; /** * RegisterUser * @author Peter Rutschmann */ -function RegisterUser({loginValues, setLoginValues}) { +function RegisterUser({ loginValues, setLoginValues }) { const navigate = useNavigate(); const initialState = { @@ -25,15 +25,23 @@ function RegisterUser({loginValues, setLoginValues}) { setErrorMessage(''); //validate - if(credentials.password !== credentials.passwordConfirmation) { + if (credentials.password !== credentials.passwordConfirmation) { console.log("password != passwordConfirmation"); setErrorMessage('Password and password-confirmation are not equal.'); return; } + const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,}$/;; + + if (!passwordRegex.test(credentials.password)) { + setErrorMessage('Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character.'); + return; + } + + try { await postUser(credentials); - setLoginValues({userName: credentials.email, password: credentials.password}); + setLoginValues({ userName: credentials.email, password: credentials.password }); setCredentials(initialState); navigate('/'); } catch (error) { @@ -47,49 +55,49 @@ function RegisterUser({loginValues, setLoginValues}) {

Register user

- +