微信小程序 一键授权登录

目标效果:

1、<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" >一键登录</button>

2、 getPhoneNumber拿到的是加密的手机号 如果想解密需要后端提供接口哦 下面是请求后端接口的函数

           /* 获取手机号 */
            async getPhoneNumber(e) { // 在bindgetphonenumber回调中获取code动态令牌
                const openid = await getOpenid();
                const key = await getUserInfo();
                this.openid = key.openid
                const session_key = key.session_key

//需要给后端传三个值 其中除了session_key都可以在getPhoneNumber返回的e中拿到session_key也需要后端先提供
                this.$request.getAction('/encodeUserInfo', {
                        encryptedData: e.detail.encryptedData,
                        iv: e.detail.iv,
                        sessionKey: key.session_key
                    }).then((res) => {
                        if (res.phoneNumber) {
                            this.mobile = res.phoneNumber
                            this.loginFn()//再请求登录函数
                        } else {
                            uni.showToast({
                                icon: 'error',
                                title: '未获取到手机号,请重新操作!',
                            })
                        }
                        // uni.showToast({
                        //     icon: 'success',
                        //     title: '修改成功',
                        // })
                    })
                    .catch((err) => {
                        uni.showToast({
                            icon: 'error',
                            title: err.msg,
                        })
                    })
            },

3、loginFn为后端的登录接口 一般传手机号和openid 就可以 

大功告成! 如果需要后端的代码 请参考微信小程序如何获取用户手机号 ?-腾讯云开发者社区-腾讯云

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值