一、登录原理
1、调用wx.login获得 code
<view> <text>第1步:</text> <button type="primary" bindtap="wxlogin" size="mini">微信登录</button> </view>
// 第1步:微信登录, 得到code wxlogin() { wx.login({ success: (res) => { console.log("微信登录", res); this.setData({ code: res.code }) }, fail(err) { console.log(err); } }) },2、获取客户信息,wx.getUserInfo (要先授权), 获得 encryptedData,iv

文章插图
官方文档说明
(因为微信官方考虑到用户隐私,所以关闭了用户进入小程序时自动弹出获取用户信息的接口,只能通过button绑定getuserinfo事件来获取用户信息)
【小程序登录流程】<view> <text>第2步:</text> <button type="warn" open-type="getUserInfo" bindgetuserinfo="getUserInfo" size="mini"> 获取用户授权信息 </button></view>
// 第2步: 获取用户授权信息,得到encryptedData,iv getUserInfo(event) { console.log("用户授权信息", event.detail); let detail = event.detail; this.setData({ encryptedData: detail.encryptedData, iv: detail.iv }) },3、调用login接口,传入code,encryptedData,iv, 后台返回获得token
<view> <text>第3步:</text> <button type="primary" bindtap="login" size="mini">登录(我们自己的服务器)</button></view>
// 第3步:登录(我们自己的服务器) login() { let url = "/user/login"; let data = { code: this.data.code, encryptedData: this.data.encryptedData, iv: this.data.iv } App.$http.post(url, data, true).then(res => { console.log("登录", res); // 第4步,把后台返回的token存到本地缓存 try { wx.setStorageSync('token', res.user.token) } catch (e) { } }) },二、一键登录(三合一)
<button open-type="getUserInfo" bindgetuserinfo="login" type="default" size="mini" class='f14 ml-10'> 立即登入 </button>
// 一键登录 login(event) { // 1、获取 encryptedData, ivlet { encryptedData, iv } = event.detail; // 微信登录 wx.login({ success: (res) => { // 2、获取code let code = res.code; // 3、登录后台服务器 let url = "/user/login"; let data = https://www.isolves.com/it/cxkf/ydd/xcx/2019-08-01/{ encryptedData, iv, code } app.$http.post(url, data, true).then(res => { console.log("登录成功", res); this.setData({ token: res.user.token }) // 4、把token存到本地缓存 try { wx.setStorageSync('token', res.user.token) } catch (e) { } }) } }) },三、授权
wx.authorize()
onLoad: function (options) { // 查看用户是否授权 wx.getSetting({ success(res) { console.log("录音授权", res.authSetting['scope.record']) let record = res.authSetting['scope.record']; if (!record) { wx.authorize({ scope: 'scope.record', success() { // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问 wx.startRecord() } }) } } }) },
推荐阅读
-
天水文学|冰水伊人/那一年的冬天——给女儿的生日寄语
-
北青网|每年400亿千瓦时,青海—河南±800千伏高压直流工程开始送电
-
-
-
阿想667|宝马3系奥迪A4L气得想跳楼,奔驰终于睡醒了!49万一路降到27万
-
冯丹|七零年她魂穿成村妞,随身空间粮食钱财应有尽有,成首长的福妻
-
爱游戏的萌博士|精灵球可以变成皮卡丘,日本达人打造的变形气球作品引起热议
-
经济日报新闻客户端|新疆和田:从杂乱小村到美丽乡村的“蜕变”
-
-
佛山市|佛山万科金色领域一女子坠楼,尸体被摔成两段,警方通报排除他杀
-
小四的娱乐|林志玲康复后首现身!低扎马尾辫穿灰色连衣裙,46岁状态优雅美
-
体坛瞎白话恐无法在CBA立足,中国男篮最强关系户!李楠爱子让人失望
-
向芷被向太富养,新造型一身大牌彰显贵气,霍中怡却十分接地气
-
大学|河南一“双一流”大学,规模堪比一个县城,却被吐槽“名不符实”
-
-
新浪网李国庆发离婚诉讼声明:希望法院尽快结束这场闹剧
-
【科技圈在这里】做新一代云网融合5G产品提供商,浪潮武帅:打造云熠边缘计算
-
东方网|东方快评丨抑郁症患者3000万,社会干预不能“挂一漏万”
-
中关村在线OPPO K7 价格低至1799元 购机还送充电宝
-
历史小艾米|徐帅给他当副手,张国焘却让他管后勤,他是鄂豫皖苏区的“大炮”