support reset password by email reset link

This commit is contained in:
MaysWind
2023-08-26 23:37:02 +08:00
parent c66bc62c41
commit f31ef1649f
42 changed files with 1298 additions and 30 deletions
+54
View File
@@ -247,6 +247,60 @@ export const useRootStore = defineStore('root', {
userState.clearWebAuthnConfig();
this.resetAllStates(true);
},
requestResetPassword({ email }) {
return new Promise((resolve, reject) => {
services.requestResetPassword({
email
}).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
reject({ message: 'Unable to send password reset email' });
return;
}
resolve(data.result);
}).catch(error => {
logger.error('failed to send password reset email', error);
if (error && error.processed) {
reject(error);
} else if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else {
reject({ message: 'Unable to send password reset email' });
}
});
});
},
resetPassword({ email, token, password }) {
return new Promise((resolve, reject) => {
services.resetPassword({
token,
email,
password
}).then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
reject({ message: 'Unable to reset password' });
return;
}
resolve(data.result);
}).catch(error => {
logger.error('failed to reset password', error);
if (error && error.processed) {
reject(error);
} else if (error.response && error.response.data && error.response.data.errorMessage) {
reject({ error: error.response.data });
} else {
reject({ message: 'Unable to reset password' });
}
});
});
},
updateUserProfile({ profile, currentPassword }) {
return new Promise((resolve, reject) => {
services.updateProfile({