微信小程序用户授权

更新日期: 2018-11-29阅读量: 4314标签: 小程序

对于小对于小程序未授权的用户,官方取消wx.getUserInfo方法的直接调用,首次授权必须主动触发自定义按钮,才可调起官方授权组件 可以获取到的信息有:昵称、头像、性别、国家、省份、城市、性别、语言


思路步骤

wx.getSetting查看是否授权

已授权使用wx.getUserInfo获取用户信息,保存

未授权显示带有button的自定义页面,bindGetUserInfo会返回用户信息,该按钮会调用微信官方授权

<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">允许用户授权</button>

授权完成保存用户信息


项目实现

app.js----我放在登陆方法之后

// 查看是否授权,保存授权状态
    wx.getSetting({
        success: function(res) {
            if (res.authSetting['scope.userInfo']) {
                wx.setStorageSync('isAuthorize', 'true');
                wx.getUserInfo({
                    success: function(res) {
                        wx.setStorageSync('userInfo', res.rawData);
                    }
                })
            } else {
                wx.setStorageSync('isAuthorize', 'false');
            }
        }
    })


main.wxml------项目主页面  

<!-- 小程序授权组件 -->
<authorize id="authorize"></authorize>


main.js------onload中进行判断是否要显示自定义的按钮  

// 已授权隐藏弹框,未授权显示弹框
this.authorize = this.selectComponent("#authorize");
if (wx.getStorageSync('isAuthorize')=='true'){
    this.authorize.hideDialog()
}


main.json-----主页面配置参数

"usingComponents": {
    "authorize": "自定义授权组件的路径"
}


authorize.js------自定义带有button的页面/弹窗组件autiorize,这里只贴出js部分  

/*authorize.js*/
Component({
    options: {
        multipleSlots: true
    },

    data: {
        isHide: false,
        canIUse: wx.canIUse('button.open-type.getUserInfo')
    },

    methods: {

        //隐藏弹框
        hideDialog() {
            this.setData({
                isHide: true
            })
        },
        // 授权信息保存
        bindGetUserInfo(e){
            wx.setStorageSync('isAuthorize', 'true');
            wx.setStorageSync('userInfo', JSON.stringify(e.detail.userInfo));
            this.hideDialog()
        }

    }
})

这样整个授权就完成了!

来自:https://blog.csdn.net/sinat_38426472/article/details/84634819


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: https://www.fly63.com/article/detial/1451

小程序图片加载失败使用默认图片

小程序的image标签有几个常用的属性,lazy-load(懒加载,默认为fasle,不过和本文无关),bindload(当图片加载完成的时候触发的事件),另一个就是我们本文的主角binderror(当发生错误的时候触发的事件);

百度小程序性能优化建议:分包和合理使用setData

智能小程序的视图层使用了 san 框架,相对于其他类似 react 等 mvvm 框架来通过 virtual dom diff 来实现组件的渲染来说,san 框架是基于 data 的 diff 来进行的组件重新渲染,减少了内存的使用率与计算量,保证视图更新的高效性。

在微信小程序中使用 async/await

微信小程序中有大量接口是异步调用,比如 wx.login() 、 wx.request() 、 wx.getUserInfo() 等,都是使用一个对象作为参数,并定义了 success() 、 fail() 和 complete() 作为异步调用不同情况下的回调。

如何让10万条数据的小程序列表如丝般顺滑

某天闲着无聊想练一下手速,去上拉一个小程序项目中一个有1万多条商品数据的列表。在数据加载到1000多条后,是列表居然出现了白屏。看了一下控制台:

微信小程序wx.getUserInfo授权获取用户信息

这个接口只能获得一些非敏感信息,例如用户昵称,用户头像,经过用户授权允许获取的情况下即可获得用户信息,至于openid这些,需要调取wx.login来获取。

探索小程序实现

随着小程序的发展与功能的逐步完善,越来越多的产品需要小程序与 APP 的功能能有一些共性,社区跨平台的解决方案越来越多,比如 taro 等为代表的把一套代码编译成多端运行的机制

微信小程序UI组件、实用库、开发工具、服务端、Demo整理分享

小程序开放至今,许多公司企业已经开发出了自己的小程序。这篇文章主要整理分享:微信小程序UI组件、开发框架、实用库、开发工具、服务端、Demo等

小程序跨页面交互的作用与方法

微信小程序的分包大小已经到达了 12M 大小,一方面说明小程序的确逐步为开发者放开更大的权限,另一方面也说明了对于某些小程序 8M 的大小已经不够用了

mpvue开发微信小程序基础知识

mpvue 是一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套 Vue.js 开发体验。mp 即 mini program 的缩写。

小程序多端框架全面测评

最近前端届多端框架频出,相信很多有代码多端运行需求的开发者都会产生一些疑惑:这些框架都有什么优缺点?到底应该用哪个?作为 Taro 开发团队一员,笔者想在本文尽量站在一个客观公正的角度去评价各个框架的选型和优劣。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!