登录优化
This commit is contained in:
parent
d483b4e58e
commit
a18d6cb959
@ -1,22 +1,11 @@
|
||||
import JSEncrypt from 'jsencrypt/bin/jsencrypt'
|
||||
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
|
||||
|
||||
// 密钥对生成 http://web.chacuo.net/netrsakeypair
|
||||
|
||||
const publicKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlJjf2lmK4zrpiATJSYfjkP2YhZ3SzKO0kqgX3Hg9o4NrgRgg9Abxw9vwZL7Weg22cJmahkx6waRYo8wXDqa2adJPntp60SAwWXou4cQTzHlySGQAC2U4CX54iHsKgqY7ifD2gmqJAkDnQkSXl4OKDTISnZcmlwIwo3Tj8jb9TWwIDAQAB-----END PUBLIC KEY-----';
|
||||
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALj0zjON+EVdBsnMcR4Uj+jOYgp5ZipftQZ1utW8KvVioz+RSaotF1JHt59q9SC/mZcWWpbpcEqQ3WyyyCC33msCAwEAAQ=='
|
||||
|
||||
const privateKey = '-----BEGIN ENCRYPTED PRIVATE KEY-----MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIV5E4J9jebHICAggAMBQGCCqGSIb3DQMHBAhdEG1zo87qTASCAoB8kR8KXgHIOQJIppp/2qGb+I8qcx/++Mb3yCAceHRMFZyczqlbKlwaDWzUVS3PQwbktb4s2coJt1uq/YL8CxAP/EJyMWsqiJxSl+4Mql0cHPhociwC7avGLtB+J2+BJU/ytF4u+/sSRGeSddoqx2glmGtYuF9U' +
|
||||
'qv3jVElfUUOr3iq0aGSQRjCguVHk8fW1vy6QYi9ipPT0/BjWu4NutRLr9TI+Sy/4' +
|
||||
'F9e6PeIKefT8ZX/q6vO0C1kVoG3GT1EjQfIF5XjmqGPUX7AR4J8R+uplDakHKZdH' +
|
||||
'l6tqH+nJNQQH2RuFzYOWmUU2BiMEuU6ortJc8HkOy7Ca4FVJywnNxjOqzikI8DFW' +
|
||||
'M9NuhMOwUCBae4582qW0zlc+ZGY1uWAoan4f3kmNdfeLU0xzk1yeR8KkprDwRk0m' +
|
||||
'6jNSSOkBlNPerCcYm+pIaOXw+NQaaU4RQwHfNZnOWjteSuOmcszXuzdniuclHLzG' +
|
||||
'zEwTolwUX9ez1sZCCmrjJpYMG4b9NQait5gx77Ogg7ymxBKnK89Gfuh3v3xvV6Td' +
|
||||
'01r1GLd+OWPaI2kxAqruD/ZsMwXMpOLAc9ljz6cgtqlmvEk6tpI+WpGCaJBZXUA6' +
|
||||
'/dv7KQeiWFQF5Oao3kX0s0wW3s2B4A2QFDE9HZHAw12nlsST8nmh+8zTxQNXhBMx' +
|
||||
'B/UBkFND4UseKwYT4k+L0MmYcyExCagDiFa7k2/08D8DSbCVSWBXTH6xKWPMvFwr' +
|
||||
'z4f5znLZFdbXYHFp0LyAw4HJ3LeTj0q8f2hNMG7lWZKYI7XZfmvoBkhODdOt2wTv' +
|
||||
'U/T0f/ibcUf9Q9YXZQQkv1NOwmDtAB1KvHIkh2LALc/BY4qEoUyEVtLg' +
|
||||
'-----END ENCRYPTED PRIVATE KEY-----'
|
||||
const privateKey =
|
||||
'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAuPTOM434RV0GycxxHhSP6M5iCnlmKl+1BnW61bwq9WKjP5FJqi0XUke3n2r1IL+ZlxZalulwSpDdbLLIILfeawIDAQABAkB5PYAtq1KjpWddwPYlkbUEFsWNuCaQgExZ/7KJiN9gGjo/UfUZ3W39Orb8PITIYf1NbasReqgddAcsfJNyoDWBAiEA7K89DyTmbjNSmekdD3rejRDdMzzXYtcbo69ZjHoowMUCIQDIDN8eg6PcWk4kiRcRYcNEfriUJR7Fg07ellSPv821bwIhAJA5TEyxIJUgQwI0cZfgOELfdtrlBR5ek6IPlNKsEa89AiBbMVroexPQWC41A3VLjChKagXUKpO7b98dIqRLnyCz6wIgP3qpvnO4IOxY7f5XarfCVyIHZJAMt/R1f16P5OkKv+A='
|
||||
|
||||
// 加密
|
||||
export function encrypt(txt) {
|
||||
|
||||
@ -13,74 +13,74 @@ export default {
|
||||
init(url) {
|
||||
const connection = new signalR.HubConnectionBuilder()
|
||||
.withUrl(url, { accessTokenFactory: () => getToken() })
|
||||
.withAutomaticReconnect()//自动重新连接
|
||||
.configureLogging(signalR.LogLevel.Information)
|
||||
.build();
|
||||
this.SR = connection;
|
||||
.withAutomaticReconnect() //自动重新连接
|
||||
.configureLogging(signalR.LogLevel.Warning)
|
||||
.build()
|
||||
this.SR = connection
|
||||
// 断线重连
|
||||
connection.onclose(async () => {
|
||||
console.log('断开连接了')
|
||||
console.assert(connection.state === signalR.HubConnectionState.Disconnected);
|
||||
// 建议用户重新刷新浏览器
|
||||
await this.start();
|
||||
console.assert(connection.state === signalR.HubConnectionState.Disconnected)
|
||||
// 建议用户重新刷新浏览器
|
||||
await this.start()
|
||||
})
|
||||
|
||||
connection.onreconnected(() => {
|
||||
console.log('断线重新连接成功')
|
||||
})
|
||||
this.receiveMsg(connection);
|
||||
this.receiveMsg(connection)
|
||||
// 启动
|
||||
// this.start();
|
||||
},
|
||||
/**
|
||||
* 调用 this.signalR.start().then(async () => { await this.SR.invoke("method")})
|
||||
* @returns
|
||||
* @returns
|
||||
*/
|
||||
async start() {
|
||||
var that = this;
|
||||
var that = this
|
||||
|
||||
try {
|
||||
//使用async和await 或 promise的then 和catch 处理来自服务端的异常
|
||||
await this.SR.start();
|
||||
await this.SR.start()
|
||||
//console.assert(this.SR.state === signalR.HubConnectionState.Connected);
|
||||
console.log('signalR 连接成功了', this.SR.state);
|
||||
return true;
|
||||
console.log('signalR 连接成功了', this.SR.state)
|
||||
return true
|
||||
} catch (error) {
|
||||
that.failNum--;
|
||||
that.failNum--
|
||||
console.log(`失败重试剩余次数${that.failNum}`, error)
|
||||
if (that.failNum > 0) {
|
||||
setTimeout(async () => {
|
||||
await this.SR.start()
|
||||
}, 5000);
|
||||
}, 5000)
|
||||
}
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
},
|
||||
// 接收消息处理
|
||||
// 接收消息处理
|
||||
receiveMsg(connection) {
|
||||
connection.on("onlineNum", (data) => {
|
||||
store.dispatch("socket/changeOnlineNum", data);
|
||||
});
|
||||
connection.on('onlineNum', (data) => {
|
||||
store.dispatch('socket/changeOnlineNum', data)
|
||||
})
|
||||
// 接收欢迎语
|
||||
connection.on("welcome", (data) => {
|
||||
connection.on('welcome', (data) => {
|
||||
console.log('welcome', data)
|
||||
Notification.info(data)
|
||||
});
|
||||
})
|
||||
// 接收后台手动推送消息
|
||||
connection.on("receiveNotice", (title, data) => {
|
||||
connection.on('receiveNotice', (title, data) => {
|
||||
Notification({
|
||||
type: 'info',
|
||||
title: title,
|
||||
message: data,
|
||||
dangerouslyUseHTMLString: true,
|
||||
duration: 0
|
||||
duration: 0,
|
||||
})
|
||||
})
|
||||
// 接收系统通知/公告
|
||||
connection.on("moreNotice", (data) => {
|
||||
connection.on('moreNotice', (data) => {
|
||||
if (data.code == 200) {
|
||||
store.dispatch("socket/getNoticeList", data.data);
|
||||
store.dispatch('socket/getNoticeList', data.data)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
import { getCodeImg } from '@/api/system/login'
|
||||
import Cookies from 'js-cookie'
|
||||
import defaultSettings from '@/settings'
|
||||
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
||||
|
||||
export default {
|
||||
name: 'Login',
|
||||
@ -111,7 +112,7 @@ export default {
|
||||
|
||||
this.loginForm = {
|
||||
username: username === undefined ? this.loginForm.username : username,
|
||||
password: password === undefined ? this.loginForm.password : password,
|
||||
password: password === undefined ? this.loginForm.password : decrypt(password),
|
||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
||||
}
|
||||
},
|
||||
@ -121,7 +122,7 @@ export default {
|
||||
this.loading = true
|
||||
if (this.loginForm.rememberMe) {
|
||||
Cookies.set('username', this.loginForm.username, { expires: 30 })
|
||||
Cookies.set('password', this.loginForm.password, {
|
||||
Cookies.set('password', encrypt(this.loginForm.password), {
|
||||
expires: 30,
|
||||
})
|
||||
Cookies.set('rememberMe', this.loginForm.rememberMe, {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user