Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
3b61d45b
提交
3b61d45b
编写于
10月 09, 2019
作者:
chengxiang.li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update login logic
上级
d3f28e9f
变更
3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
197 行增加
和
64 行删除
+197
-64
accountApi.js
src/utils/account/accountApi.js
+35
-0
mixins.js
src/utils/mixins.js
+54
-23
login.vue
src/views/login.vue
+108
-41
未找到文件。
src/utils/account/accountApi.js
0 → 100644
浏览文件 @
3b61d45b
import
fetch
from
'../fetch'
;
import
{
getBaseUrl
,
getSaasDomain
,
getSaasApiDomain
}
from
'@/utils/index'
import
utils
from
'@/utils/followup/followupUtils'
;
const
headers
=
{
// sysCode: 9,
productType
:
1
,
// productType 产品线类型,1 表示云鹊医产品系,2 表示云鹊健康产品系
sourceType
:
3
,
// sourceType 终端来源,1 表示安卓,2 表示 ios,3 表示 web,4 表示 H5 登录,5 表示 admin 后台
}
// 获取 RSA public key
export
const
getPubKey
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`account/cipher/key`
),
method
:
'get'
,
params
:
params
,
description
:
'get public key'
,
})
};
// 密码登录
export
const
handleLogin
=
data
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`account/login`
),
method
:
'post'
,
data
:
data
,
description
:
'密码登录'
,
})
}
src/utils/mixins.js
浏览文件 @
3b61d45b
...
@@ -3,6 +3,10 @@ import { getBaseUrl, getReportUrl, getWorkApi } from '@/utils/index'
...
@@ -3,6 +3,10 @@ import { getBaseUrl, getReportUrl, getWorkApi } from '@/utils/index'
import
{
CryptoJS
}
from
'@/plugins/aes'
import
{
CryptoJS
}
from
'@/plugins/aes'
import
{
JSEncrypt
}
from
'jsencrypt'
import
{
JSEncrypt
}
from
'jsencrypt'
import
{
getPubKey
}
from
'@/utils/account/accountApi'
;
let
pubKey
=
""
;
module
.
exports
=
{
module
.
exports
=
{
data
:
function
()
{
data
:
function
()
{
return
{
return
{
...
@@ -18,6 +22,7 @@ module.exports = {
...
@@ -18,6 +22,7 @@ module.exports = {
},
},
methods
:
{
methods
:
{
// generate key
// generate key
getAesKey
(
len
)
{
getAesKey
(
len
)
{
len
=
len
||
16
;
len
=
len
||
16
;
...
@@ -29,39 +34,65 @@ module.exports = {
...
@@ -29,39 +34,65 @@ module.exports = {
};
};
return
aesKey
;
return
aesKey
;
},
},
// 加密传参,发送请求
sendEncryptRequest
(
content
,
cb
){
content
=
JSON
.
stringify
(
content
);
// 后端要求转 string
// debugger;
if
(
pubKey
){
// pubKey获取过就不用再获取了
let
params
=
this
.
formatContent
(
content
,
pubKey
);
cb
&&
cb
(
params
);
}
else
{
this
.
handleGetPubKey
(
content
,
cb
);
}
},
// get public key
handleGetPubKey
(
content
,
cb
){
getPubKey
().
then
(
res
=>
{
console
.
log
(
'>>>>>>>>>>>>>>>>>>>> publicKey: '
,
res
)
if
(
res
.
code
==
'000000'
){
pubKey
=
res
.
data
;
if
(
cb
){
let
params
=
this
.
formatContent
(
content
,
pubKey
);
cb
&&
cb
(
params
);
}
}
else
{
that
.
$message
({
message
:
(
data
&&
data
.
message
)
||
'接口出错'
,
type
:
'warning'
});
}
})
},
// format account params
formatContent
(
content
,
pubKey
)
{
// obj为具体的json传参
let
aesKey
=
this
.
getAesKey
(
16
);
console
.
log
(
'AES key::::::: '
,
aesKey
)
let
params
=
{
key
:
''
,
content
:
''
};
// 开发阶段后端接口还没处理加密,先传 原始json数据
params
.
content
=
content
;
// params.content = this.AesEncrypt(content, aesKey);
params
.
key
=
this
.
RsaEncrypt
(
aesKey
,
pubKey
);
return
params
;
},
// AES encrypt
// AES encrypt
AesEncrypt
(
content
,
key
)
{
AesEncrypt
(
content
,
aesKey
)
{
// let key = this.getAesKey(16);
let
sKey
=
CryptoJS
.
enc
.
Utf8
.
parse
(
aesKey
);
let
sKey
=
CryptoJS
.
enc
.
Utf8
.
parse
(
key
);
let
sContent
=
CryptoJS
.
enc
.
Utf8
.
parse
(
content
);
let
sContent
=
CryptoJS
.
enc
.
Utf8
.
parse
(
content
);
let
encrypted
=
CryptoJS
.
AES
.
encrypt
(
sContent
,
sKey
,
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
});
let
encrypted
=
CryptoJS
.
AES
.
encrypt
(
sContent
,
sKey
,
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
});
return
encrypted
.
toString
();
return
encrypted
.
toString
();
},
},
// get RSA PublicKey
getRsaPublicKey
(){
// 请求接口获取 publicKey
let
publicKey
=
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB"
;
return
publicKey
;
},
// RSA encrypt
// RSA encrypt
RsaEncrypt
(
data
){
RsaEncrypt
(
aesKey
,
pubKey
){
let
_encrypt
=
new
JSEncrypt
();
let
_encrypt
=
new
JSEncrypt
();
let
boss_public_key
=
this
.
getRsaPublicKey
()
;
let
boss_public_key
=
pubKey
;
_encrypt
.
setPublicKey
(
boss_public_key
);
_encrypt
.
setPublicKey
(
boss_public_key
);
let
encrypted
=
_encrypt
.
encrypt
(
data
);
let
encrypted
=
_encrypt
.
encrypt
(
aesKey
);
return
encrypted
;
return
encrypted
;
},
},
getEncryptParams
(
obj
)
{
// obj为具体的json传参
let
key
=
this
.
getAesKey
(
16
);
console
.
log
(
'key::::::: '
,
key
)
let
params
=
{
key
:
''
,
content
:
''
};
params
.
content
=
this
.
AesEncrypt
(
obj
,
key
);
params
.
key
=
this
.
RsaEncrypt
(
key
);
return
params
;
},
getUrlPara
(
obj
)
{
getUrlPara
(
obj
)
{
let
dataStr
=
''
let
dataStr
=
''
let
list
=
[];
let
list
=
[];
...
...
src/views/login.vue
浏览文件 @
3b61d45b
...
@@ -93,6 +93,8 @@
...
@@ -93,6 +93,8 @@
import
{
ssoLogin2
,
getDeviceInfo
}
from
'@/utils/utils'
;
import
{
ssoLogin2
,
getDeviceInfo
}
from
'@/utils/utils'
;
import
{
mapActions
}
from
'vuex'
;
import
{
mapActions
}
from
'vuex'
;
import
md5
from
'js-md5'
;
import
md5
from
'js-md5'
;
import
{
handleLogin
}
from
'@/utils/account/accountApi'
;
export
default
{
export
default
{
name
:
"login"
,
name
:
"login"
,
...
@@ -121,8 +123,15 @@
...
@@ -121,8 +123,15 @@
ssoLogin2
();
//初始化登录信息
ssoLogin2
();
//初始化登录信息
vm
=
this
;
vm
=
this
;
let
finalRequest
=
this
.
getEncryptParams
({
a
:
1
,
b
:
3
})
// let cb = (params) => {
console
.
log
(
'>>>>>>>>> finalRequest '
,
finalRequest
)
// console.log('>>>>>>>>> finalParams ', params)
// // do request
// }
// this.getEncryptContent({a:1, b:3}, cb)
// setTimeout(() => {
// this.getEncryptContent({a:1, b:3}, cb)
// }, 5000)
},
},
methods
:
{
methods
:
{
...
@@ -181,6 +190,7 @@
...
@@ -181,6 +190,7 @@
hidePWSBtn
()
{
hidePWSBtn
()
{
this
.
showPSW
=
false
this
.
showPSW
=
false
},
},
// 忘记密码时 获取验证码
getAuthCode
()
{
getAuthCode
()
{
if
(
!
this
.
resetPassword
.
mobile
)
{
if
(
!
this
.
resetPassword
.
mobile
)
{
this
.
resetMobileErr
=
true
;
this
.
resetMobileErr
=
true
;
...
@@ -194,6 +204,8 @@
...
@@ -194,6 +204,8 @@
this
.
resetMobileErr
=
false
;
this
.
resetMobileErr
=
false
;
this
.
resetMobileErrText
=
''
;
this
.
resetMobileErrText
=
''
;
}
}
// ------------------------ Old Start-------------------------------
let
params
=
{
let
params
=
{
receiver
:
this
.
resetPassword
.
mobile
,
receiver
:
this
.
resetPassword
.
mobile
,
token
:
localStorage
.
getItem
(
"token"
),
token
:
localStorage
.
getItem
(
"token"
),
...
@@ -228,6 +240,18 @@
...
@@ -228,6 +240,18 @@
type
:
'error'
type
:
'error'
});
});
})
})
// ------------------------ Old End-------------------------------
// ------------------------ New Start-------------------------------
// let params = {
// mobilePhone: this.resetPassword.mobile,
// flag: 4, // 4 重置密码
// };
// ------------------------ New End-------------------------------
},
},
...
@@ -253,50 +277,93 @@
...
@@ -253,50 +277,93 @@
if
(
!
this
.
loginData
.
mobile
||!
this
.
checkPhone
(
this
.
loginData
.
mobile
)
||!
this
.
loginData
.
password
)
{
if
(
!
this
.
loginData
.
mobile
||!
this
.
checkPhone
(
this
.
loginData
.
mobile
)
||!
this
.
loginData
.
password
)
{
return
;
return
;
}
}
let
params
=
{
// ------------------------ Old Start-------------------------------
// let params = {
// mobile: this.loginData.mobile,
// OS: localStorage.getItem("OS"),
// browser: localStorage.getItem("browser"),
// terminalType: localStorage.getItem("terminalType"),
// ipAddress: localStorage.getItem("ipAddress"),
// password: md5(this.loginData.password).toUpperCase(),
// token: localStorage.getItem("token"),
// };
// this.saasGET('/registers/saasLogin',params).then(data => {
// if (data.mobileFlag == 1) {
// /*this.$message({
// message: '手机号或密码不正确!',
// type: 'error'
// });*/
// this.loginPWDErr = true;
// this.loginPWDErrText = '手机号或密码不正确!';
// return;
// }
// if (data.isExist == 2) {
// /*this.$message({
// message: '该手机号尚未注册!',
// type: 'error'
// });*/
// this.loginMobileErr = true;
// this.loginMobileErrText = '该手机号尚未注册!';
// return;
// }
// localStorage.setItem("token", data.token);
// vm.changeToken(data.token)
// localStorage.setItem("storageToken", data.token);
// localStorage.setItem('doctorId',data.picapDoctor.id);
// localStorage.setItem("mobilePhone", params.mobile);
// localStorage.setItem("pass", params.password);
// sessionStorage.setItem("mobile",params.mobile);
// sessionStorage.setItem("pass",params.password);
// this.$router.push('/');
// }).catch( err => {
// this.$message({
// message: '系统错误!',
// type: 'error'
// });
// })
// ------------------------ Old End-------------------------------
// ------------------------ New Start-------------------------------
let
paramsObj
=
{
mobile
:
this
.
loginData
.
mobile
,
mobile
:
this
.
loginData
.
mobile
,
OS
:
localStorage
.
getItem
(
"OS"
),
browser
:
localStorage
.
getItem
(
"browser"
),
terminalType
:
localStorage
.
getItem
(
"terminalType"
),
ipAddress
:
localStorage
.
getItem
(
"ipAddress"
),
password
:
md5
(
this
.
loginData
.
password
).
toUpperCase
(),
password
:
md5
(
this
.
loginData
.
password
).
toUpperCase
(),
token
:
localStorage
.
getItem
(
"token"
),
};
};
this
.
saasGET
(
'/registers/saasLogin'
,
params
).
then
(
data
=>
{
let
loginCB
=
params
=>
{
if
(
data
.
mobileFlag
==
1
)
{
handleLogin
(
params
).
then
(
data
=>
{
/*this.$message({
console
.
log
(
'>>>>>>login res '
,
data
)
message: '手机号或密码不正确!',
if
(
data
.
code
==
'216509'
||
data
.
code
==
'216502'
||
data
.
code
==
'100001'
)
{
type: 'error'
this
.
loginPWDErr
=
true
;
});*/
this
.
loginPWDErrText
=
'手机号或密码不正确!'
;
this
.
loginPWDErr
=
true
;
return
;
this
.
loginPWDErrText
=
'手机号或密码不正确!'
;
}
return
;
if
(
data
.
code
==
'216508'
)
{
}
this
.
loginMobileErr
=
true
;
if
(
data
.
isExist
==
2
)
{
this
.
loginMobileErrText
=
'该手机号尚未注册!'
;
/*this.$message({
return
;
message: '该手机号尚未注册!',
}
localStorage
.
setItem
(
"token"
,
data
.
token
);
vm
.
changeToken
(
data
.
token
)
localStorage
.
setItem
(
"storageToken"
,
data
.
token
);
this
.
$router
.
push
(
'/'
);
}).
catch
(
err
=>
{
this
.
$message
({
message
:
'系统错误!'
,
type
:
'error'
type
:
'error'
});*/
});
this
.
loginMobileErr
=
true
;
})
this
.
loginMobileErrText
=
'该手机号尚未注册!'
;
};
return
;
this
.
sendEncryptRequest
(
paramsObj
,
loginCB
)
}
localStorage
.
setItem
(
"token"
,
data
.
token
);
vm
.
changeToken
(
data
.
token
)
localStorage
.
setItem
(
"storageToken"
,
data
.
token
);
localStorage
.
setItem
(
'doctorId'
,
data
.
picapDoctor
.
id
);
localStorage
.
setItem
(
"mobilePhone"
,
params
.
mobile
);
localStorage
.
setItem
(
"pass"
,
params
.
password
);
sessionStorage
.
setItem
(
"mobile"
,
params
.
mobile
);
sessionStorage
.
setItem
(
"pass"
,
params
.
password
);
this
.
$router
.
push
(
'/'
);
// ------------------------ New End-------------------------------
}).
catch
(
err
=>
{
this
.
$message
({
message
:
'系统错误!'
,
type
:
'error'
});
})
},
},
resetPWD
()
{
resetPWD
()
{
if
(
!
this
.
resetPassword
.
mobile
)
{
if
(
!
this
.
resetPassword
.
mobile
)
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录