配置超高压生产嵌入系统
This commit is contained in:
@@ -15,6 +15,14 @@ export function heBeiToken(data) {
|
|||||||
params: data,
|
params: data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// /超高压嵌入token校验
|
||||||
|
export function productionManagementCheck(data) {
|
||||||
|
return request({
|
||||||
|
url: "/pqs-auth/judgeToken/productionManagementCheck",
|
||||||
|
method: "post",
|
||||||
|
params: data,
|
||||||
|
});
|
||||||
|
}
|
||||||
//登录获取token
|
//登录获取token
|
||||||
export function login(data) {
|
export function login(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ import store from './store'
|
|||||||
import NProgress from 'nprogress' // progress bar
|
import NProgress from 'nprogress' // progress bar
|
||||||
import 'nprogress/nprogress.css' // progress bar style
|
import 'nprogress/nprogress.css' // progress bar style
|
||||||
import getPageTitle from '@/utils/get-page-title'
|
import getPageTitle from '@/utils/get-page-title'
|
||||||
import { logout } from '@/api/user.js'
|
import { productionManagementCheck } from '@/api/user.js'
|
||||||
|
|
||||||
// NProgress.configure({ showSpinner: false }) // NProgress Configuration
|
// NProgress.configure({ showSpinner: false }) // NProgress Configuration
|
||||||
// && from.path === '/agreement' && from.path === '/policy'
|
// && from.path === '/agreement' && from.path === '/policy'
|
||||||
const whiteList = ['/login', '/agreement', '/policy'] // no redirect whitelist
|
const whiteList = ['/login', '/agreement', '/policy'] // no redirect whitelist
|
||||||
@@ -87,8 +86,34 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
// })
|
// })
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
|
const response = await fetch('/')
|
||||||
|
const flag = response.headers.get('X-Xbqr')
|
||||||
|
console.log('🚀 ~ flag:', flag)
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
// 超高压嵌入 接受父应用传参
|
||||||
|
window.addEventListener(
|
||||||
|
'message',
|
||||||
|
event => {
|
||||||
|
if (event.data && event.data.type === 'iframeNest') {
|
||||||
|
let { accessToken, displayMode, theme } = event.data
|
||||||
|
console.log('我是iframe,我接收到了数据:', accessToken)
|
||||||
|
productionManagementCheck({
|
||||||
|
token: accessToken
|
||||||
|
}).then(res => {
|
||||||
|
console.log('🚀 ~ receiveMessageFromOutside ~ res:', res)
|
||||||
|
if (res.code == 'A0000') {
|
||||||
proceed(to, from, next)
|
proceed(to, from, next)
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
false
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
proceed(to, from, next)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// else {
|
// else {
|
||||||
// //获取用户信息
|
// //获取用户信息
|
||||||
@@ -133,9 +158,13 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
async function proceed(to, from, next, HB_NAME) {
|
async function proceed(to, from, next, HB_NAME) {
|
||||||
|
// 打印当前 name 和 sessionStorage 中 cntoken 是否为空的日志
|
||||||
let name = HB_NAME || 'cdf'
|
let name = HB_NAME || 'cdf'
|
||||||
|
// 检查 sessionStorage 中是否没有 cntoken
|
||||||
console.log('🚀 ~ proceed ~ name:', name, window.sessionStorage.getItem('cntoken') == null)
|
console.log('🚀 ~ proceed ~ name:', name, window.sessionStorage.getItem('cntoken') == null)
|
||||||
|
// 定义默认密码
|
||||||
if (window.sessionStorage.getItem('cntoken') == null) {
|
if (window.sessionStorage.getItem('cntoken') == null) {
|
||||||
|
// 初始化登录表单
|
||||||
let password = '@#001njcnpqs'
|
let password = '@#001njcnpqs'
|
||||||
let loginjmForm = {
|
let loginjmForm = {
|
||||||
username: '',
|
username: '',
|
||||||
@@ -143,38 +172,53 @@ async function proceed(to, from, next, HB_NAME) {
|
|||||||
grant_type: 'captcha',
|
grant_type: 'captcha',
|
||||||
verifyCode: 0,
|
verifyCode: 0,
|
||||||
imageCode: ''
|
imageCode: ''
|
||||||
|
// 对 name 进行加密处理
|
||||||
}
|
}
|
||||||
let username = encrypt(name)
|
let username = encrypt(name)
|
||||||
|
// 设置登录表单的用户名
|
||||||
|
|
||||||
|
// 将应用高度存储到 sessionStorage 中
|
||||||
loginjmForm.username = username
|
loginjmForm.username = username
|
||||||
|
// 调用 gongkey 函数获取公钥
|
||||||
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
|
window.sessionStorage.setItem('appheight', document.body.offsetHeight - 10)
|
||||||
await gongkey({ loginName: username }).then(async response => {
|
await gongkey({ loginName: username }).then(async response => {
|
||||||
window.publicKey = response.data
|
window.publicKey = response.data
|
||||||
|
// 将公钥存储到全局变量和 localStorage 中
|
||||||
window.localStorage.setItem('publicKey', response.data)
|
window.localStorage.setItem('publicKey', response.data)
|
||||||
|
|
||||||
var sm3Pwd = sm3Digest(password)
|
var sm3Pwd = sm3Digest(password)
|
||||||
|
// 使用 SM3 算法对密码进行摘要处理
|
||||||
var jiamipassword = ''
|
var jiamipassword = ''
|
||||||
|
// 使用 SM2 算法对密码进行加密
|
||||||
jiamipassword = sm2(sm3Pwd + '|' + password, publicKey, 0)
|
jiamipassword = sm2(sm3Pwd + '|' + password, publicKey, 0)
|
||||||
loginjmForm.password = jiamipassword
|
loginjmForm.password = jiamipassword
|
||||||
|
// 设置登录表单的加密密码
|
||||||
|
|
||||||
store
|
store
|
||||||
|
// 调用 Vuex 的 login 方法进行登录
|
||||||
.dispatch('user/login', loginjmForm)
|
.dispatch('user/login', loginjmForm)
|
||||||
.then(async response => {
|
.then(async response => {
|
||||||
if (response.code === 'A0101' && response.message === '登录认证,密码失效,请重置') {
|
if (response.code === 'A0101' && response.message === '登录认证,密码失效,请重置') {
|
||||||
|
// 如果登录响应需要重置密码
|
||||||
CodeSr().then(response => {
|
CodeSr().then(response => {
|
||||||
|
// 调用 CodeSr 函数获取验证码图片
|
||||||
let blob = new Blob([response], { type: 'image/jpg' })
|
let blob = new Blob([response], { type: 'image/jpg' })
|
||||||
let url = window.URL.createObjectURL(blob)
|
let url = window.URL.createObjectURL(blob)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
await store.dispatch('user/getInfo')
|
await store.dispatch('user/getInfo')
|
||||||
|
// 获取用户信息
|
||||||
// 根据角色生成可访问的路线图
|
// 根据角色生成可访问的路线图
|
||||||
const accessRoutes = await store.dispatch('permission/generateRoutes')
|
const accessRoutes = await store.dispatch('permission/generateRoutes')
|
||||||
// 动态添加可访问的路由
|
// 动态添加可访问的路由
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.addRoutes(accessRoutes)
|
router.addRoutes(accessRoutes)
|
||||||
if (response.code === 'A0000') {
|
if (response.code === 'A0000') {
|
||||||
|
// 如果登录成功
|
||||||
loginjmForm.verifyCode = 0
|
loginjmForm.verifyCode = 0
|
||||||
|
// 重置验证码
|
||||||
SysConfig()
|
SysConfig()
|
||||||
|
// 调用 SysConfig 函数进行系统配置
|
||||||
// cgyList.indexOf(to.path) !== -1
|
// cgyList.indexOf(to.path) !== -1
|
||||||
store.dispatch('user/getmenu').then(async response => {
|
store.dispatch('user/getmenu').then(async response => {
|
||||||
await getmuen(response.data[0])
|
await getmuen(response.data[0])
|
||||||
|
|||||||
Reference in New Issue
Block a user