博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序~wx.getUserInfo逐渐废弃,小程序登录过程将如何优化?
阅读量:5075 次
发布时间:2019-06-12

本文共 2731 字,大约阅读时间需要 9 分钟。

很多的时候我们在做小程序应用的时候,希望用户在使用小程序前进行登录授权,之前登录后通过wx.getUserInfo直接弹出授权的登录方式官方的意思是将不再支持,而是让用户通过下面的方式授权用户信息

<button open-type="getUserInfo" bindgetuserinfo="getUserInfoAction">授权用户信息</button>
这样的话当小程序在使用前一定需要用户登录,或者已经进行到需要用户登录的操作时;这样的话就需要一个button授权页面。这种改变,感觉个人还是喜欢默认弹层的的授权方式,这个方式可能一时不适应吧,有种排斥。
下面是通过button授权的方式做的一个登录:这里我只是展示了login.js 与 index.js 过程,有不对或者不好的地方欢迎加群交流指正。
login.js
const ajax = require("../../common/ajax.js")const tips = require("../../common/tips.js")Page({  /**   * 页面的初始数据   */  data: {  },  /**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    let that = this;      },  getUserInfoAction(res){    let that = this;    const encryptedData = res.detail.encryptedData;    const iv = res.detail.iv;    if (encryptedData && iv){      // console.log("允许")      that.login().then((login)=>{        const params = {          "code": login.code,          "encryptedData": encryptedData,          "iv": iv,          "type": "small_wechat"        }        ajax.posts(params, "api/passport/thirdSign").then((res) => {                   let userinfo = {            avatar: res.data.data.avatar,            nickname: res.data.data.nickname,            token: res.data.data.token,            user_id: res.data.data.user_id          }          wx.setStorageSync("userinfo", userinfo);          // console.log(wx.getStorageSync("userinfo"));          if (wx.getStorageSync("userinfo")){            wx.redirectTo({              url: '/page/index/index'            })          }                            }).catch((errMsg) => {          tips.showToast("网络连接失败", "none")          console.log(errMsg)        })      }).catch((errMsg) => {        console.log("登录:" + errMsg)      })    }else{      // console.log("拒绝")      tips.showToast("请授权公开信息,登录小程序", "none")    }  },  login(){    // 登录    let promise = new Promise((resolve, reject) => {      wx.login({        success: function (res) {          if (res.code) {            resolve(res)          } else {            tips.showToast("登录失败", "none")          }        },        fail: function (err) {          reject(err)        }      })    })    return promise;  }})

index.js

const tips = require("../../common/tips.js")Page({  /**   * 页面的初始数据   */  data: {      },  /**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    let that = this;    if (!wx.getStorageSync("userinfo")) {      //是否登录      that.isloginindex()    }  },  isloginindex() {    //是否进入首页    if (wx.getStorageSync("userinfo")) {      console.log("登录")    } else {      //无信息      console.log("否登录")      wx.redirectTo({        url: '/page/login/login'      })    }  }})
 
 通过button open-type="getUserInfo"的方式授权登录小程序流程,还没有想到一个更好的办法,目前是这么干的;如果有不对或者更好方式的欢迎指正或者一起交流
 
 

 

转载于:https://www.cnblogs.com/changxue/p/8966330.html

你可能感兴趣的文章
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
会计电算化常考题目一
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>