外部系统对接免登录

master
许宏杰 3 months ago
parent 0a30d96ce8
commit cf9307b25a

@ -1,60 +1,79 @@
import request from '@/utils/request' import request from "@/utils/request";
import { encrypt } from "@/utils/jsencrypt";
// 登录方法 // 登录方法
export function login(username, password, code, uuid) { export function login(username, password, code, uuid) {
// password = encrypt(password); //密码加密
const data = { const data = {
username, username,
password, password,
code, code,
uuid uuid,
} };
return request({ return request({
url: '/login', url: "/login",
headers: { headers: {
isToken: false, isToken: false,
repeatSubmit: false repeatSubmit: false,
}, },
method: 'post', method: "post",
data: data data: data,
}) });
}
export function login2(username, password, code, uuid) {
// password = encrypt(password); //密码加密
const data = {
username,
password,
code,
uuid,
};
return request({
url: "/loginnocaptcha",
headers: {
isToken: false,
},
method: "post",
data: data,
});
} }
// 注册方法 // 注册方法
export function register(data) { export function register(data) {
return request({ return request({
url: '/register', url: "/register",
headers: { headers: {
isToken: false isToken: false,
}, },
method: 'post', method: "post",
data: data data: data,
}) });
} }
// 获取用户详细信息 // 获取用户详细信息
export function getInfo() { export function getInfo() {
return request({ return request({
url: '/getInfo', url: "/getInfo",
method: 'get' method: "get",
}) });
} }
// 退出方法 // 退出方法
export function logout() { export function logout() {
return request({ return request({
url: '/logout', url: "/logout",
method: 'post' method: "post",
}) });
} }
// 获取验证码 // 获取验证码
export function getCodeImg() { export function getCodeImg() {
return request({ return request({
url: '/captchaImage', url: "/captchaImage",
headers: { headers: {
isToken: false isToken: false,
}, },
method: 'get', method: "get",
timeout: 20000 timeout: 20000,
}) });
} }

@ -158,7 +158,8 @@ export default {
return ( return (
this.$route.name == "xiaoqu" && this.$route.name == "xiaoqu" &&
(this.$auth.hasRoleOr(["admin", "leader"]) || (this.$auth.hasRoleOr(["admin", "leader"]) ||
(this.$auth.hasRoleOr(["xiaoqu"]) && this.dept.xiaoquId == 238)) (this.$auth.hasRoleOr(["xiaoqu"]) && this.dept.xiaoquId == 238)) &&
!this.$route.query.isLeader
); );
}, },
}, },

@ -12,6 +12,29 @@ const whiteList = ["/login", "/register"];
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
NProgress.start(); NProgress.start();
if (to.path == "/xiaoqu" && to.query.isLeader && !getToken()) {
store
.dispatch("login2", { username: "领导", password: "Loudong@2022***" })
.then((res) => {
handelRouter(to, from, next);
})
.catch((err) => {
store.dispatch("LogOut").then(() => {
Message.error("账号无法登录,请联系管理员");
next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
});
});
return;
}
handelRouter(to, from, next);
});
router.afterEach(() => {
NProgress.done();
});
function handelRouter(to, from, next) {
if (getToken()) { if (getToken()) {
to.meta.title && store.dispatch("settings/setTitle", to.meta.title); to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
/* has token*/ /* has token*/
@ -54,8 +77,4 @@ router.beforeEach((to, from, next) => {
NProgress.done(); NProgress.done();
} }
} }
}); }
router.afterEach(() => {
NProgress.done();
});

@ -1,4 +1,4 @@
import { login, logout, getInfo } from "@/api/login"; import { login, logout, getInfo, login2 } from "@/api/login";
import { getToken, setToken, removeToken } from "@/utils/auth"; import { getToken, setToken, removeToken } from "@/utils/auth";
const user = { const user = {
@ -55,6 +55,23 @@ const user = {
}); });
}); });
}, },
login2({ commit }, userInfo) {
const username = userInfo.username.trim();
const password = userInfo.password;
const code = userInfo.code;
const uuid = userInfo.uuid;
return new Promise((resolve, reject) => {
login2(username, password, code, uuid)
.then((res) => {
setToken(res.token);
commit("SET_TOKEN", res.token);
resolve();
})
.catch((error) => {
reject(error);
});
});
},
// 获取用户信息 // 获取用户信息
GetInfo({ commit, state }) { GetInfo({ commit, state }) {

@ -70,7 +70,7 @@ service.interceptors.request.use(
const s_url = sessionObj.url; // 请求地址 const s_url = sessionObj.url; // 请求地址
const s_data = sessionObj.data; // 请求数据 const s_data = sessionObj.data; // 请求数据
const s_time = sessionObj.time; // 请求时间 const s_time = sessionObj.time; // 请求时间
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 const interval = 2000; // 间隔时间(ms),小于此时间视为重复提交
if ( if (
s_data === requestObj.data && s_data === requestObj.data &&
requestObj.time - s_time < interval && requestObj.time - s_time < interval &&

Loading…
Cancel
Save