一、token运行原理
使用token实现“登录后获取个人信息
客户端 | 服务器 | |
---|---|---|
第一次请求:登录 | 1、客户端发送简单请求,包含uname和upwd | |
2、服务器验证登录信息,成功后,把客户端信息保存在一个对象中,形如:{ 用户编号:123, 用户名:yaya, 登录时间:x年x月x日 xx:xx:xx, 登录过期时间:x年x月x日 xx:xx:xx ….} | ||
3.服务器将上述对象加密为定长字符串(即token);随同响应消息一同返回给客户端: { code:200, msg: ‘login succ’, token: '加密后的定长字符串' } | ||
4.接收到响应消息,把其中的token保存在客户端 uni.setStorageSync(‘userToken’, res.token ) | ||
第二次请求:获取个人档案 | 5.从客户端读取之前保存的tokenlet token=uni.getStorageSync('userToken') | |
6.发送请求消息,把token放在请求消息头中(与后端协商好的请求头)uni.request({ url, header:{ token: token } }) 生成的请求消息形如: GET /user/get_basic.php HTTP1.1 token: ''加密后的字符串'' | ||
7.服务器接收到请求消息,从请求头中读取req.headers.token(即token),解密令牌,得到原始的令牌信息,即:{ 用户编号:123, 用户名:yaya 登录时间:x年x月x日 xx:xx:xx, 登录过期时间:x年x月x日 xx:xx:xx …. } | ||
8. 服务器根据用户信息查询数据库,将用户信息返回给客户端 |
六、重点面试题:uni-app中的生命周期方法
第一组:应用程序级生命周期方法——App.vue:
onLaunch():应用程序启动,每个应用此方法只能调用一次
onShow():应用程序显示出来,可以多次调用
onHide():应用程序隐藏起来,可以多次调用
第二组:页面级生命周期方法——pages
onLoad():页面加载完成,类似于组件的mounted,每个组件只挂载一次;一般用于异步请求页面需要的数据
onShow():页面显示出来,可以多次调用
onReady():页面准备就绪,第一次挂载完成后,进场动画执行完成,可供用户使用
onHide():页面隐藏起来,可以多次调用
onUnload():页面卸载了,类似于组件的destroyed;一般用于释放页面所占用的资源,例如:定时器、WebSocket....
onPageScroll():页面滚动了
onReachBottom():页面滚动到底部了
onPullDownRefresh():页面在顶部下拉刷新了
第三组:组件级生命周期方法——components
beforeCreate() / created()
beforeMount() / mounted()
beforeUpdate() / updated()
beforeDestroy() / destroyed()