1.微信小程序 获取用户信息 与获取手机号

详细信息看官方公告:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801

回收uni.getUserInfo接口可获取用户授权(返回的全部是匿名数据)

4月28日24时后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。

采用uni.getUserProfile 来授权返回微信用户信息

具体变化如下表:

2.uni.getUserInfo 接口调用方式

起初通过button 来获取用户信息, 设置 open-type="getUserInfo"

<button  open-type="getUserInfo" @getuserinfo="getUserInfo">微信授权登录(open-type 获取)</button>

js部分
getUserInfo(e) {
if (e.detail.errMsg == 'getUserInfo:ok') {
//对数据进行操作
console.log(e)
} else {
this.$operate.toast({
title: '授权失败无法登录!'
})
}
},

或者 直接调用 uni.getUserInfo 来获取信息 在当前微信更新接口后,这2个接口将直接返回匿名用户数据,不在弹窗提示

//js 部分 通过 @tap="userInfo" 调用
userInfo() {
//获取code
uni.login({
provider: 'weixin',
success(login) {
console.log(login);
//获取用户信息
uni.getUserInfo({
provider: 'weixin',
lang: 'zh_CN',
success(user) {
console.log(user);
}
})
}
})
}

3.采用uni.getUserProfile 获取信息

不通过open-type 调用 而是使用 @tap=“goLogin” 或 bindtap="goLogin"调用的

<button  @tap="goLogin">微信uni.getUserProfile 登录</button>

//js
goLogin() {
// 获取code 小程序专有,用户登录凭证。
uni.login({
provider: 'weixin',
success(login) {
console.log(login);
}
})
// desc: '用于完善会员资料' 必填 声明获取用户个人信息后的用途,后续会展示在弹窗中
uni.getUserProfile({
desc: '用于完善会员资料',
lang: 'zh_CN',
success(user) {
console.log(user);
}
})
},

4.获取手机号 登录

获取手机号 ,只能通过 button 按钮点击来获取 信息 ,传给后台解析数据

<button open-type="getPhoneNumber" @getphonenumber="getUserPhone">微信手机号登录</button>

js部分
//获取用户手机号
getUserPhone(e) {
// 获取code 小程序专有,用户登录凭证。
uni.login({
provider: 'weixin',
success(login) {
console.log(login);
}
})
//手机号加密数据
if (e.detail.errMsg == 'getPhoneNumber:ok') {
// 获取 encryptedData 与 iv 传给后台进行解析
console.log(e)
//传给后端的参数
let data = {
session_key: '后端返回微信 openid ',
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
}
} else {
this.$operate.toast({
title: '授权失败无法登录!'
})
}
}

在解析 加密信息时,需先通过 uni.login获取code并上传给后台,用来获取微信 openid

4.验证码倒计时登录

项目有时会用到验证码倒计时,增加一个小玩意,有需要自取

css 样式采用 ColorUI-UniApp

案例地址:https://gitee.com/jielov/uni-app-tabbar/blob/master/pages/wx_login/wx_login.vue

uni-app 微信小程序授权登录的更多相关文章

  1. 完整微信小程序授权登录页面教程

    完整微信小程序授权登录页面教程 1.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方 ...

  2. uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号

    授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...

  3. 微信小程序授权登录将open_id传至后台并入库

    要求能把用户昵称.头像以及open_id写入数据库,服务端保持用户登录状态 wxml: <block wx:else> <button type="primary" ...

  4. 微信小程序授权登录

    目录 自定义授权页面 点击授权登录后出现微信自带的授权登录弹窗 <!--index.wxml--> <!-- 授权界面 --> <cover-view class='au ...

  5. 微信小程序授权登录以及用户信息相关接口调整导致授权框不弹出

    前言:4月8号升级了小程序业务后提交了版本并上线.突然一个同事说体验版的点击"登录"按钮无效.当时觉得应该不会呀,这几天一直用手机调试,每天也在不停的登录授权,弹框一直有的呀.然后 ...

  6. 微信小程序授权登录--PHP后端接口

    由于之前做过公众号的一个开发,所以再开发小程序就没有那么多坑了,在这也记录一下开发过程,以方便后续进行参考. 废话不多说,直接上官方文档,任何使用第三方开发的,不看文档就是耍流氓.小程序开发文档,可以 ...

  7. 微信小程序获取登录手机号

    小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...

  8. 使用Shiro+JWT完成的微信小程序的登录(含讲解)

    使用Shiro+JWT完成的微信小程序的登录 源码地址https://github.com/Jirath-Liu/shiro-jwt-wx 微信小程序用户登陆,完整流程可参考下面官方地址,本例中是按此 ...

  9. php(ThinkPHP)实现微信小程序的登录过程

    源码也在我的github中给出 https://github.com/wulongtao/think-wxminihelper 下面结合thinkPHP框架来实现以下微信小程序的登录流程,这些流程是结 ...

随机推荐

  1. canal数据同步 客户端代码实现

    1.引入相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId ...

  2. iOS拍照之系统拍照

    拍照在App中使用频次高,入门级别直接调用系统拍照 思路: 系统拍照使用UIImagePickerController 1.设置下plist,否则没权限,报错 2.判断摄像头,获取权限,否则弹出界面黑 ...

  3. 字符串拼接出现null的问题

    最近在开发的过程中遇到这样的问题,原因是在做一个需求的时候,要求将解密的号码和前缀进行拼接.一开始在这个拼接的过程中,没有考虑到数据校验的问题,因为有可能他的前缀或者其他需要拼接的字段在前端传递的过程 ...

  4. 谈一下HashMap的底层原理是什么?

    底层原理:Map + 无序 + 键唯一 + 哈希表 (数组+Entry)+ 存取值 1.HashMap是Map接口的实现类.实现HashMap对数据的操作,允许有一个null键,多个null值. Co ...

  5. DQL:data query language用来查询数据库表中的数据

    对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 如果没有查询条件,则每次查询所有的行.实际应用中,一般要指定查询的条件.对记录进行过滤. 查询 ...

  6. SpringCloud之服务配置

    1.config 1.1定义 对于分布式微服务,有很多的配置,那么修改起来很麻烦.这就需要对这些配置文件进行集中式的管理,config的功能就是用来统一管理配置文件的.它为微服务提供集中化的外部配置支 ...

  7. getter和setter以及defineProperty的用法

    getter 和 setter 和 defineProperty getter:将对象属性绑定到查询该属性时将被调用的函数 说人话就是,当你调用一个getter属性时会调用定义好的get函数,这个函数 ...

  8. Java流程控制:循环结构

    一.简介 顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构. Java中有三种主要的循环结构: 'while'循环 'do...while'循环 'for'循环 在J ...

  9. Django Static与Media

    关于Django中Static和Media的设置问题(尤其是css和js静态文件加载的问题),网上有很多回答,但是发现有相当一部分回答并不能解决问题.有的可能是Django版本问题,有的是把media ...

  10. 干货!!!测试如何确定是前端bug还是后端bug

    目前的项目大多数都是前后端分离的,当我们发现bug后不知道指派给哪位开发,指派错了不仅影响解决bug 的效率,还容易被开发怼.最主要的是人家会认为你不专业,不专,不专呀.废话少说,上干货(踩过的坑)! ...