|
@@ -162,15 +162,18 @@ import { ElMessage } from "element-plus";
|
|
|
import Cookies from "js-cookie";
|
|
|
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
|
|
import useUserStore from "@/store/modules/user";
|
|
|
+import { sm3 } from "sm-crypto";
|
|
|
|
|
|
const userStore = useUserStore();
|
|
|
const route = useRoute();
|
|
|
const router = useRouter();
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
-
|
|
|
+const useOld = ref(false); //是否用的旧密码
|
|
|
+const oldUseName = ref(); //保存记录的用户名称
|
|
|
+const oldUsePass = ref(); //保存记录的用户密码
|
|
|
const loginForm = ref({
|
|
|
username: "admin",
|
|
|
- password: "admin123",
|
|
|
+ password: "Admin123.",
|
|
|
rememberMe: false,
|
|
|
code: "",
|
|
|
uuid: "",
|
|
@@ -194,9 +197,7 @@ const newPassRule = (rule, value, callback) => {
|
|
|
if (value === "") {
|
|
|
callback(new Error("请输入密码"));
|
|
|
} else if (!pPattern.test(value)) {
|
|
|
- callback(
|
|
|
- new Error("密码长度最少为8位,包含大小写数字、数字、特殊字符")
|
|
|
- );
|
|
|
+ callback(new Error("密码长度最少为8位,包含大小写数字、数字、特殊字符"));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
@@ -237,13 +238,15 @@ async function handleLogin() {
|
|
|
if (valid) {
|
|
|
// console.log('loginvalid',valid);
|
|
|
loading.value = true;
|
|
|
+ // console.log("pass",loginForm.value.password);
|
|
|
+ // console.log("sm3",sm3('123456'));
|
|
|
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
|
|
|
- Cookies.set("pass", encrypt(loginForm.value.password), {
|
|
|
+ Cookies.set("pass", sm3(loginForm.value.password), {
|
|
|
expires: 30,
|
|
|
});
|
|
|
if (loginForm.value.rememberMe) {
|
|
|
Cookies.set("username", loginForm.value.username, { expires: 30 });
|
|
|
- Cookies.set("password", encrypt(loginForm.value.password), {
|
|
|
+ Cookies.set("password", sm3(loginForm.value.password), {
|
|
|
expires: 30,
|
|
|
});
|
|
|
Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 });
|
|
@@ -254,13 +257,20 @@ async function handleLogin() {
|
|
|
Cookies.remove("rememberMe");
|
|
|
}
|
|
|
// 调用action的登录方法
|
|
|
+ const query = loginForm.value;
|
|
|
+ if (oldUseName.value != loginForm.value.username || oldUsePass.value != query.password) {
|
|
|
+ //如果登录的和记录的用户不是同一个, 或者同一个用户但是重新输入了密码,那就需要sm3加密
|
|
|
+ query.password = sm3(query.password);
|
|
|
+ }
|
|
|
+ console.log("query", query);
|
|
|
userStore
|
|
|
- .login(loginForm.value)
|
|
|
+ .login(query)
|
|
|
.then(async (res) => {
|
|
|
const infoRes = await getInfo();
|
|
|
console.log("infoRes", infoRes);
|
|
|
// console.log('loginres',res);
|
|
|
if (infoRes.repass) {
|
|
|
+ //需要该密
|
|
|
showEdit.value = true;
|
|
|
loading.value = false;
|
|
|
// userStore.logOut();
|
|
@@ -292,12 +302,13 @@ function getCode() {
|
|
|
|
|
|
function getCookie() {
|
|
|
const username = Cookies.get("username");
|
|
|
+ oldUseName.value = username;
|
|
|
const password = Cookies.get("password");
|
|
|
+ oldUsePass.value = password;
|
|
|
const rememberMe = Cookies.get("rememberMe");
|
|
|
loginForm.value = {
|
|
|
username: username === undefined ? loginForm.value.username : username,
|
|
|
- password:
|
|
|
- password === undefined ? loginForm.value.password : decrypt(password),
|
|
|
+ password: password === undefined ? loginForm.value.password : password,
|
|
|
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
|
|
};
|
|
|
}
|
|
@@ -307,21 +318,23 @@ const closeRepass = () => {
|
|
|
};
|
|
|
|
|
|
const submitForm = async (formEl) => {
|
|
|
- const passwordCookies = Cookies.get("pass");
|
|
|
- const oldPass = decrypt(passwordCookies);
|
|
|
- if (formData.value.oldpss != oldPass) {
|
|
|
- userStore.logOut();
|
|
|
- return ElMessage({ message: "旧密码输入错误", type: "error" });
|
|
|
- }
|
|
|
+ // const passwordCookies = Cookies.get("pass");
|
|
|
+ // const oldPass = decrypt(passwordCookies);
|
|
|
+ // if (formData.value.oldpss != oldPass) {
|
|
|
+ // userStore.logOut();
|
|
|
+ // return ElMessage({ message: "旧密码输入错误", type: "error" });
|
|
|
+ // }
|
|
|
if (!formEl) return;
|
|
|
- console.log("formEl", formEl);
|
|
|
+ // console.log("formEl", formEl);
|
|
|
await formEl.validate((valid) => {
|
|
|
if (valid) {
|
|
|
- updateUserPwd(formData.value.oldpss, formData.value.newpass).then((response) => {
|
|
|
- console.log('response',response);
|
|
|
- ElMessage({ message: "修改成功,请重新登录", type: "success" });
|
|
|
- showEdit.value = false;
|
|
|
- });
|
|
|
+ updateUserPwd(sm3(formData.value.oldpss), sm3(formData.value.newpass)).then(
|
|
|
+ (response) => {
|
|
|
+ console.log("response", response);
|
|
|
+ ElMessage({ message: "修改成功,请重新登录", type: "success" });
|
|
|
+ showEdit.value = false;
|
|
|
+ }
|
|
|
+ );
|
|
|
} else {
|
|
|
ElMessage({ message: "请输入符合规则的密码", type: "error" });
|
|
|
userStore.logOut();
|