微信小程序登录逻辑
Posted King
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序登录逻辑相关的知识,希望对你有一定的参考价值。
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("用户拒绝获取基本信息"); } } }) } }),
以上是关于微信小程序登录逻辑的主要内容,如果未能解决你的问题,请参考以下文章