From f50ed925371834d2d66fc62ee2cc8dba152046a9 Mon Sep 17 00:00:00 2001 From: bb_pan Date: Tue, 22 Apr 2025 10:03:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96-=E9=A6=96=E6=AC=A1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sgzb-ui/src/api/login.js | 9 ++++++++- sgzb-ui/src/store/modules/user.js | 12 +++++++++--- sgzb-ui/src/utils/checkPw.js | 23 +++++++++++++++++++++++ sgzb-ui/src/views/newLogin.vue | 20 ++++++++++---------- sgzb-ui/src/views/resetPassword.vue | 12 ++++++------ 5 files changed, 56 insertions(+), 20 deletions(-) create mode 100644 sgzb-ui/src/utils/checkPw.js diff --git a/sgzb-ui/src/api/login.js b/sgzb-ui/src/api/login.js index eab46307..6fdd2799 100644 --- a/sgzb-ui/src/api/login.js +++ b/sgzb-ui/src/api/login.js @@ -112,5 +112,12 @@ export function loginByMall(data) { }) } - +// 验证密码 +export function checkPasswordStatusApi(data) { + return request({ + url: '/auth/checkPasswordStatus', + method: 'post', + data + }) +} diff --git a/sgzb-ui/src/store/modules/user.js b/sgzb-ui/src/store/modules/user.js index 4b01e180..1d22c8a0 100644 --- a/sgzb-ui/src/store/modules/user.js +++ b/sgzb-ui/src/store/modules/user.js @@ -2,6 +2,7 @@ import { login, logout, getInfo, refreshToken, checkCode, loginByMall } from '@/ import { getToken, setToken, setExpiresIn, removeToken } from '@/utils/auth' import { Notification, MessageBox, Message, Loading } from 'element-ui' import { encrypt } from '@/utils/jsencrypt' +import { checkPasswordStatus } from '@/utils/checkPw' const user = { state: { @@ -48,7 +49,6 @@ const user = { return new Promise((resolve, reject) => { login(username, password, code, uuid).then(res => { let data = res.data - localStorage.setItem('isCode', data.code || '') setToken(data.access_token) commit('SET_TOKEN', data.access_token) localStorage.setItem('token', data.access_token) @@ -112,7 +112,12 @@ const user = { // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { - getInfo().then(res => { + getInfo().then(async res => { + const href = window.location.href + if (!href.includes('resetPassword') && JSON.parse(localStorage.getItem('isReset'))) { + await checkPasswordStatus() + } + const user = res.user /* 存储当前登录用户的userId */ sessionStorage.setItem('userId', user.userId) @@ -155,7 +160,8 @@ const user = { commit('SET_TOKEN', '') commit('SET_ROLES', []) commit('SET_PERMISSIONS', []) - localStorage.removeItem('isCode') + localStorage.removeItem('username') + localStorage.removeItem('pw') removeToken() resolve() }).catch(error => { diff --git a/sgzb-ui/src/utils/checkPw.js b/sgzb-ui/src/utils/checkPw.js new file mode 100644 index 00000000..7917a95c --- /dev/null +++ b/sgzb-ui/src/utils/checkPw.js @@ -0,0 +1,23 @@ +import { Message } from 'element-ui' +import { checkPasswordStatusApi } from '@/api/login' + +export const checkPasswordStatus = () => { + const username = localStorage.getItem('username') + const password = localStorage.getItem('pw') + try { + return new Promise(async (resolve, reject) => { + const res = await checkPasswordStatusApi({ username, password }) + if (res.data == true) { + Message.error(res.msg) + localStorage.setItem('isReset', JSON.stringify(true)) + resolve(false) + location.href = '/resetPassword' + } else { + localStorage.setItem('isReset', JSON.stringify(false)) + resolve(true) + } + }) + } catch (error) { + console.log('🚀 ~ checkPasswordStatus ~ error:', error) + } +} diff --git a/sgzb-ui/src/views/newLogin.vue b/sgzb-ui/src/views/newLogin.vue index 16174a65..3d703bb3 100644 --- a/sgzb-ui/src/views/newLogin.vue +++ b/sgzb-ui/src/views/newLogin.vue @@ -281,6 +281,7 @@ import { getCodeImg, sendCode } from '@/api/login' import Cookies from 'js-cookie' import { encrypt, decrypt } from '@/utils/jsencrypt' +import { checkPasswordStatus } from '@/utils/checkPw' export default { name: 'Login', @@ -518,17 +519,16 @@ export default { } this.$store .dispatch('Login', this.loginForm) - .then(() => { - // 宁夏目前不需要重置初始密码 - // if (localStorage.getItem('isCode') == 1) { - // this.$router.push({ path: '/resetPassword' }).catch(() => {}) - // } else { - // this.$router.push({ path: '/' }).catch(() => {}) - // } - - this.$router.push({ path: '/' }).catch(() => {}) - + .then(async () => { localStorage.setItem('notice', true) + + const username = this.loginForm.username.trim() + const password = encrypt(this.loginForm.password) + localStorage.setItem('username', username) + localStorage.setItem('pw', password) + const res = await checkPasswordStatus() + console.log('🚀 ~ .then ~ res:', res) + this.$router.push({ path: '/' }).catch(() => {}) }) .catch(() => { this.loading = false diff --git a/sgzb-ui/src/views/resetPassword.vue b/sgzb-ui/src/views/resetPassword.vue index c685a80a..4906be0c 100644 --- a/sgzb-ui/src/views/resetPassword.vue +++ b/sgzb-ui/src/views/resetPassword.vue @@ -4,14 +4,14 @@

请重置登录密码

- +