提交 3b61d45b 编写于 作者: chengxiang.li's avatar chengxiang.li

update login logic

上级 d3f28e9f
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: '密码登录',
})
}
...@@ -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 = [];
......
...@@ -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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册