微调
This commit is contained in:
@@ -80,7 +80,6 @@ const tabsStore = useTabsStore()
|
||||
const keepAliveStore = useKeepAliveStore()
|
||||
|
||||
const dictStore = useDictStore()
|
||||
const isAutoLogin = ref(false)
|
||||
let publicKey: any = null;
|
||||
|
||||
|
||||
@@ -105,31 +104,23 @@ const login = (formEl: FormInstance | undefined) => {
|
||||
if (!valid) return
|
||||
loading.value = true
|
||||
try {
|
||||
if (!isAutoLogin.value) {
|
||||
let {data: publicKeyBase64}: { data: string } = await getPublicKey(loginForm.username, loginForm.checked)
|
||||
//将base64格式的公钥转换为Forge可以使用的格式
|
||||
const publicKeyDer = forge.util.decode64(publicKeyBase64);
|
||||
publicKey = forge.pki.publicKeyFromPem(forge.pki.publicKeyToPem(forge.pki.publicKeyFromAsn1(forge.asn1.fromDer(publicKeyDer))));
|
||||
}
|
||||
let {data: publicKeyBase64}: { data: string } = await getPublicKey(loginForm.username)
|
||||
//将base64格式的公钥转换为Forge可以使用的格式
|
||||
const publicKeyDer = forge.util.decode64(publicKeyBase64);
|
||||
publicKey = forge.pki.publicKeyFromPem(forge.pki.publicKeyToPem(forge.pki.publicKeyFromAsn1(forge.asn1.fromDer(publicKeyDer))));
|
||||
|
||||
// 1.执行登录接口
|
||||
const {data} = await loginApi({
|
||||
username: forge.util.encode64(loginForm.username),
|
||||
password: isAutoLogin.value ? loginForm.password : encryptPassword(loginForm.password),
|
||||
checked: loginForm.checked
|
||||
password: encryptPassword(loginForm.password),
|
||||
})
|
||||
if (loginForm.checked) {
|
||||
localStorage.setItem("loginInfo", JSON.stringify({
|
||||
username: forge.util.encode64(loginForm.username),
|
||||
password: isAutoLogin.value ? loginForm.password : encryptPassword(loginForm.password),
|
||||
exp: Date.now() + 1000 * 60 * 60 * 24 * 30
|
||||
}))
|
||||
} else {
|
||||
localStorage.removeItem("loginInfo")
|
||||
}
|
||||
userStore.setAccessToken(data.accessToken)
|
||||
userStore.setRefreshToken(data.refreshToken)
|
||||
userStore.setUserInfo(data.userInfo)
|
||||
if(loginForm.checked){
|
||||
// userStore.setExp(Date.now() + 1000 * 60 * 60 * 24 * 30)
|
||||
userStore.setExp(Date.now() + 1000 * 10)
|
||||
}
|
||||
const response = await getDictList()
|
||||
const dictData = response.data as unknown as Dict[]
|
||||
await dictStore.initDictData(dictData)
|
||||
@@ -179,20 +170,6 @@ const encryptPassword = (password: string) => {
|
||||
return forge.util.encode64(encrypted);
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
let loginInfoJSON = localStorage.getItem("loginInfo")
|
||||
if (loginInfoJSON) {
|
||||
const loginInfo = JSON.parse(loginInfoJSON)
|
||||
if (loginInfo.exp < Date.now()) {
|
||||
localStorage.removeItem("loginInfo")
|
||||
} else {
|
||||
isAutoLogin.value = true
|
||||
loginForm.username = forge.util.decode64(loginInfo.username)
|
||||
loginForm.password = loginInfo.password
|
||||
loginForm.checked = true
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang='scss'>
|
||||
|
||||
Reference in New Issue
Block a user