1.0.8 • Published 3 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_code
token,当前服务端返回的是包含密码的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
3 years ago