password policy
This commit is contained in:
parent
5ac961330e
commit
0ea0b8b3c6
|
@ -33,7 +33,7 @@ function LoginUser({ loginValues, setLoginValues }) {
|
||||||
<div>
|
<div>
|
||||||
<label>Email:</label>
|
<label>Email:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="email"
|
||||||
value={loginValues.email}
|
value={loginValues.email}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setLoginValues(prevValues => ({ ...prevValues, email: e.target.value }))}
|
setLoginValues(prevValues => ({ ...prevValues, email: e.target.value }))}
|
||||||
|
@ -44,7 +44,7 @@ function LoginUser({ loginValues, setLoginValues }) {
|
||||||
<div>
|
<div>
|
||||||
<label>Password:</label>
|
<label>Password:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="password"
|
||||||
value={loginValues.password}
|
value={loginValues.password}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setLoginValues(prevValues => ({ ...prevValues, password: e.target.value }))}
|
setLoginValues(prevValues => ({ ...prevValues, password: e.target.value }))}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import {postUser} from "../../comunication/FetchUser";
|
import { postUser } from "../../comunication/FetchUser";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RegisterUser
|
* RegisterUser
|
||||||
* @author Peter Rutschmann
|
* @author Peter Rutschmann
|
||||||
*/
|
*/
|
||||||
function RegisterUser({loginValues, setLoginValues}) {
|
function RegisterUser({ loginValues, setLoginValues }) {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
|
@ -25,15 +25,23 @@ function RegisterUser({loginValues, setLoginValues}) {
|
||||||
setErrorMessage('');
|
setErrorMessage('');
|
||||||
|
|
||||||
//validate
|
//validate
|
||||||
if(credentials.password !== credentials.passwordConfirmation) {
|
if (credentials.password !== credentials.passwordConfirmation) {
|
||||||
console.log("password != passwordConfirmation");
|
console.log("password != passwordConfirmation");
|
||||||
setErrorMessage('Password and password-confirmation are not equal.');
|
setErrorMessage('Password and password-confirmation are not equal.');
|
||||||
return;
|
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 {
|
try {
|
||||||
await postUser(credentials);
|
await postUser(credentials);
|
||||||
setLoginValues({userName: credentials.email, password: credentials.password});
|
setLoginValues({ userName: credentials.email, password: credentials.password });
|
||||||
setCredentials(initialState);
|
setCredentials(initialState);
|
||||||
navigate('/');
|
navigate('/');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -47,49 +55,49 @@ function RegisterUser({loginValues, setLoginValues}) {
|
||||||
<h2>Register user</h2>
|
<h2>Register user</h2>
|
||||||
<form onSubmit={handleSubmit}>
|
<form onSubmit={handleSubmit}>
|
||||||
<section>
|
<section>
|
||||||
<aside>
|
<aside>
|
||||||
<div>
|
<div>
|
||||||
<label>Firstname:</label>
|
<label>Firstname:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
value={credentials.firstName}
|
value={credentials.firstName}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setCredentials(prevValues => ({...prevValues, firstName: e.target.value}))}
|
setCredentials(prevValues => ({ ...prevValues, firstName: e.target.value }))}
|
||||||
required
|
required
|
||||||
placeholder="Please enter your firstname *"
|
placeholder="Please enter your firstname *"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label>Lastname:</label>
|
<label>Lastname:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
value={credentials.lastName}
|
value={credentials.lastName}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setCredentials(prevValues => ({...prevValues, lastName: e.target.value}))}
|
setCredentials(prevValues => ({ ...prevValues, lastName: e.target.value }))}
|
||||||
required
|
required
|
||||||
placeholder="Please enter your lastname *"
|
placeholder="Please enter your lastname *"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label>Email:</label>
|
<label>Email:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="email"
|
||||||
value={credentials.email}
|
value={credentials.email}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setCredentials(prevValues => ({...prevValues, email: e.target.value}))}
|
setCredentials(prevValues => ({ ...prevValues, email: e.target.value }))}
|
||||||
required
|
required
|
||||||
placeholder="Please enter your email"
|
placeholder="Please enter your email"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
<aside>
|
<aside>
|
||||||
<div>
|
<div>
|
||||||
<label>Password:</label>
|
<label>Password:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="password"
|
||||||
value={credentials.password}
|
value={credentials.password}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setCredentials(prevValues => ({...prevValues, password: e.target.value}))}
|
setCredentials(prevValues => ({ ...prevValues, password: e.target.value }))}
|
||||||
required
|
required
|
||||||
placeholder="Please enter your pwd *"
|
placeholder="Please enter your pwd *"
|
||||||
/>
|
/>
|
||||||
|
@ -97,10 +105,10 @@ function RegisterUser({loginValues, setLoginValues}) {
|
||||||
<div>
|
<div>
|
||||||
<label>Password confirmation:</label>
|
<label>Password confirmation:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="password"
|
||||||
value={credentials.passwordConfirmation}
|
value={credentials.passwordConfirmation}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setCredentials(prevValues => ({...prevValues, passwordConfirmation: e.target.value}))}
|
setCredentials(prevValues => ({ ...prevValues, passwordConfirmation: e.target.value }))}
|
||||||
required
|
required
|
||||||
placeholder="Please confirm your pwd *"
|
placeholder="Please confirm your pwd *"
|
||||||
/>
|
/>
|
||||||
|
|
Loading…
Reference in New Issue