feat(web): randomize password on reest (#7943)

* feat(web): randomize password on reest

* prettier

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
Sam Holton 2024-03-14 17:33:39 -04:00 committed by GitHub
parent ab4b8eca15
commit cda45f9bfb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 61 additions and 26 deletions

View file

@ -13,6 +13,7 @@
export let user: UserResponseDto;
export let canResetPassword = true;
export let newPassword: string;
let error: string;
let success: string;
@ -53,12 +54,12 @@
const resetPassword = async () => {
try {
const defaultPassword = 'password';
newPassword = generatePassword();
await updateUser({
updateUserDto: {
id: user.id,
password: defaultPassword,
password: newPassword,
shouldChangePassword: true,
},
});
@ -70,6 +71,23 @@
isShowResetPasswordConfirmation = false;
}
};
// TODO move password reset server-side
function generatePassword(length: number = 16) {
let generatedPassword = '';
const characterSet = '0123456789' + 'abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + ',.-{}+!#$%/()=?';
for (let i = 0; i < length; i++) {
let randomNumber = crypto.getRandomValues(new Uint32Array(1))[0];
randomNumber = randomNumber / 2 ** 32;
randomNumber = Math.floor(randomNumber * characterSet.length);
generatedPassword += characterSet[randomNumber];
}
return generatedPassword;
}
</script>
<div