1.0.8 • Published 5 years ago
ct-h5-utils v1.0.8
安装
npm i -S ct-h5-utils自动登录
import { login } from 'ct-h5-utils'使用前准备
- 在
src/config/env.js中导出mallUrl作为商城IP加端口号 - (非必须)在
src/config/env.js中导出mobileNoRsa布尔值,false表示获取的手机号码为明文的,true表示获取的手机号码为加密的
注意事项
- 由事件传递登录状态
- 登录过程中,不会弹出等待框,等待框要自己加
- 电脑上登录目前还是跳转login页面,所以,以前的登录页面,还是要留着
- 登录成功事件
logined返回数据说明- 电脑上返回的数据是
undefined - app上分两种情况
- 上一次登录的资金账号的登录状态有效时,返回
undefined - 非上述情况将发起加密登录请求,此时返回加密登录请求返回的数据
- 上一次登录的资金账号的登录状态有效时,返回
- 综上,使用登录成功返回的数据,要有判断。一般有返回数据,说明账号变更
- 电脑上返回的数据是
- 登录成功后的本地存储,使用
localStorage保存了client_name用户名client_gender用户性别 0:先生,1:女士token_codetoken,当前服务端返回的是包含密码的rsa加密的jwt字符串
- 登录成功后
ctDataManager上也做了数据同步ctDataManager.fundAccount报错了资金账号ctDataManager.loginStatus值更新为2,表示已登录
- 自动登录接口传参都是加密的,故而返回的
token也是加密的jwt。如果后台使用的token是普通jwt,然后台改 简言之后台接口要是报token错误,让后台改,原因是前面半句。
加密登录请求地址
若自动登录保存的本地缓存数据不够,可以自行定制。从下面接口查看后的返回的数据
'/mall/user/submitLoginWithEncryption'举例
import { login } from 'ct-h5-utils'
mounted(){
this.loginEvent();
login(this.$el);
},
methods: {
/**
* 登录事件
*/
loginEvent () {
let el = this.$el;
window.loading.show();
// 登录成功
el.addEventListener('logined', (e) => {
window.loading.hide();
});
// 登录失败
el.addEventListener('loginErr', (e) => {
window.loading.hide();
common.showToast(e.detail.error_info); // 报错
});
// 跳转登录页面,电脑上登录
el.addEventListener('goLoginPage', () => {
// 页面跳转了,页面元素发生变化,不会触发这个事件。
window.loading.hide();
});
// 登录取消(点了同花顺登录界面返回键)
el.addEventListener('loginCancel', () => {
window.loading.hide();
});
// 告知当前是未登录状态,(app方法获取不到账号和密码)
el.addEventListener('notLogin', () => {
});
},
}可能遇到的问题
src/manager/dataManager.js 中的 logoutFundAccount 方法报 callback is not function ,请判断 callback 存在时在执行
神策埋点
使用:
import { ctSensors } from 'ct-h5-utils'- 调用
ctSensors.init()初始化,可向该函数传参,一般不用传 - 接着调用
ctSensors.bindAction(['action_a'])生成埋点方法,可以不传参。埋点时,在vue组件中调用this.ctSensors.ActionA(params)即可。 - 默认提供
['tab_view', 'tab_resource_click', 'Deal_login_click', 'Deal_login_result', 'Cancel_order_click', 'Cancel_order_confirm']埋点事件。当对tab_view事件埋点时,如下使用:this.ctSensors.TabView(params).
注意事项
tab_view事件一般业务都会要求埋点,没有的话,要询问。tab_view事件,进页面就要埋点。但首页上要在调用app方法获取手机号回调中埋点,有调用app方法获取手机号的页面,也应该在获取手机号回调中埋点- 如果页面需要自动登录,务必在登录请求回调成功逻辑中调用
this.ctSensors.setLoginInfo()重新设置登录信息。但不必在意在此之前触发的埋点事件没有登录信息,之后的有即可 - 使用示例参考文档:神策埋点npm包使用
1.0.8
5 years ago