password policy

This commit is contained in:
Lorenz Hohermuth 2025-06-06 09:06:58 +02:00
parent 5ac961330e
commit 0ea0b8b3c6
2 changed files with 53 additions and 45 deletions

View File

@ -33,7 +33,7 @@ function LoginUser({ loginValues, setLoginValues }) {
<div>
<label>Email:</label>
<input
type="text"
type="email"
value={loginValues.email}
onChange={(e) =>
setLoginValues(prevValues => ({ ...prevValues, email: e.target.value }))}
@ -44,7 +44,7 @@ function LoginUser({ loginValues, setLoginValues }) {
<div>
<label>Password:</label>
<input
type="text"
type="password"
value={loginValues.password}
onChange={(e) =>
setLoginValues(prevValues => ({ ...prevValues, password: e.target.value }))}

View File

@ -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}) {
<h2>Register user</h2>
<form onSubmit={handleSubmit}>
<section>
<aside>
<div>
<label>Firstname:</label>
<input
type="text"
value={credentials.firstName}
onChange={(e) =>
setCredentials(prevValues => ({...prevValues, firstName: e.target.value}))}
required
placeholder="Please enter your firstname *"
/>
</div>
<div>
<label>Lastname:</label>
<input
type="text"
value={credentials.lastName}
onChange={(e) =>
setCredentials(prevValues => ({...prevValues, lastName: e.target.value}))}
required
placeholder="Please enter your lastname *"
/>
</div>
<div>
<label>Email:</label>
<input
type="text"
value={credentials.email}
onChange={(e) =>
setCredentials(prevValues => ({...prevValues, email: e.target.value}))}
required
placeholder="Please enter your email"
/>
</div>
</aside>
<aside>
<div>
<label>Firstname:</label>
<input
type="text"
value={credentials.firstName}
onChange={(e) =>
setCredentials(prevValues => ({ ...prevValues, firstName: e.target.value }))}
required
placeholder="Please enter your firstname *"
/>
</div>
<div>
<label>Lastname:</label>
<input
type="text"
value={credentials.lastName}
onChange={(e) =>
setCredentials(prevValues => ({ ...prevValues, lastName: e.target.value }))}
required
placeholder="Please enter your lastname *"
/>
</div>
<div>
<label>Email:</label>
<input
type="email"
value={credentials.email}
onChange={(e) =>
setCredentials(prevValues => ({ ...prevValues, email: e.target.value }))}
required
placeholder="Please enter your email"
/>
</div>
</aside>
<aside>
<div>
<label>Password:</label>
<input
type="text"
type="password"
value={credentials.password}
onChange={(e) =>
setCredentials(prevValues => ({...prevValues, password: e.target.value}))}
setCredentials(prevValues => ({ ...prevValues, password: e.target.value }))}
required
placeholder="Please enter your pwd *"
/>
@ -97,10 +105,10 @@ function RegisterUser({loginValues, setLoginValues}) {
<div>
<label>Password confirmation:</label>
<input
type="text"
type="password"
value={credentials.passwordConfirmation}
onChange={(e) =>
setCredentials(prevValues => ({...prevValues, passwordConfirmation: e.target.value}))}
setCredentials(prevValues => ({ ...prevValues, passwordConfirmation: e.target.value }))}
required
placeholder="Please confirm your pwd *"
/>