微信小程序登录逻辑
2018-07-07 15:25
423 查看
wx.getStorage({ key: 'session_id', success: function(res) { //如果本地缓存中有session_id,则说明用户登陆过 console.log("本地缓存中的session_id:" + res.data) //判断微信服务器session是否有效 wx.checkSession({ success: function(res) { console.log("处于登录态,session有效"); //如果已经授权过了并且session有效,则直接跳转到业务页面 wx.switchTab({ url: '/pages/leader/leader', complete: function(res) {} }) }, fail: function(res) { //如果微信服务端的session已经无效,需要重新执行登录的过程 // 登录 wx.login({ success: function(res) { console.log(res) that.setData({ code: res.code }) } }), // 获取用户信息 wx.getSetting({ success: res => { //判断用户是否授权 if (res.authSetting['scope.userInfo']) { console.log("用户同意获取基本信息"); // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ lang: "zh_CN", success: res => { console.log("获取到的用户信息:" + res.userInfo.nickName); console.log("获取到的加密信息:" + res.encryptedData); console.log("获取到的code:" + that.data.code); console.log("获取到的iv:" + res.iv); var url = app.globalData.ApiUrl + "/KingSmall/wxlogin"; wx.request({ url: url, data: { code: that.data.code, encryptedData: res.encryptedData, iv: res.iv }, success(res) { console.log("返回的session_id:" + res.data); wx.setStorage({ key: 'session_id', data: res.data, }), //处理成功,跳转到对应的页面 wx.switchTab({ url: '/pages/leader/leader', complete: function (res) { } }) } }) } }) } else { console.log("用户拒绝获取基本信息"); } } }) }, complete: function(res) {}, }) }, //如果获取不到本地的sessionid 则让用户重新登录 fail: function(res) { console.log("获取失败的session_id:" + res.data); // 登录 wx.login({ success: function(res) { console.log(res) that.setData({ code: res.code }) } }), // 获取用户信息 wx.getSetting({ success: res => { //判断用户是否授权 if (res.authSetting['scope.userInfo']) { console.log("用户同意获取基本信息"); // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ lang: "zh_CN", success: res => { console.log("获取到的用户信息:" + res.userInfo.nickName); console.log("获取到的加密信息:" + res.encryptedData); console.log("获取到的code:" + that.data.code); console.log("获取到的iv:" + res.iv); var url = app.globalData.ApiUrl + "/KingSmall/wxlogin"; wx.request({ url: url, data: { code: that.data.code, encryptedData: res.encryptedData, iv: res.iv }, success(res) { console.log("返回的session_id:" + res.data); wx.setStorage({ key: 'session_id', data: res.data, }) //处理成功,跳转到对应的页面 wx.switchTab({ url: '/pages/leader/leader', complete: function(res) {} }) } }) } }) } else { console.log("用户拒绝获取基本信息"); } } }) } }),
相关文章推荐
- 微信小程序登录逻辑整理
- [转]微信小程序登录逻辑梳理
- 微信小程序入门——登录(只写逻辑)
- 微信小程序登录逻辑整理
- thinkPHP5.0开发微信小程序登录接口signature验证失败
- 微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案
- 微信小程序的登录过程简介
- 一步步教会你微信小程序的登录鉴权
- 详解微信小程序 登录获取unionid
- 微信小程序服务器端部署好后报错,后台无法进入登录界面
- 微信小程序登录状态
- 微信小程序之登录态维护(十一)
- 【微信小程序】 通过用户登录实现批量收集formId
- 微信小程序-06-详解介绍.js 逻辑层文件-注册页面
- 微信端开发--登录小程序步骤
- 对于微信小程序登录的理解图
- 微信端开发--登录小程序
- 微信小程序:MINA逻辑层
- thinkphp5微信小程序登录解密
- 微信投票程序实现逻辑导图