uni-app 微信小程序授权登录
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.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方 ...
- uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号
授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...
- 微信小程序授权登录将open_id传至后台并入库
要求能把用户昵称.头像以及open_id写入数据库,服务端保持用户登录状态 wxml: <block wx:else> <button type="primary" ...
- 微信小程序授权登录
目录 自定义授权页面 点击授权登录后出现微信自带的授权登录弹窗 <!--index.wxml--> <!-- 授权界面 --> <cover-view class='au ...
- 微信小程序授权登录以及用户信息相关接口调整导致授权框不弹出
前言:4月8号升级了小程序业务后提交了版本并上线.突然一个同事说体验版的点击"登录"按钮无效.当时觉得应该不会呀,这几天一直用手机调试,每天也在不停的登录授权,弹框一直有的呀.然后 ...
- 微信小程序授权登录--PHP后端接口
由于之前做过公众号的一个开发,所以再开发小程序就没有那么多坑了,在这也记录一下开发过程,以方便后续进行参考. 废话不多说,直接上官方文档,任何使用第三方开发的,不看文档就是耍流氓.小程序开发文档,可以 ...
- 微信小程序获取登录手机号
小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...
- 使用Shiro+JWT完成的微信小程序的登录(含讲解)
使用Shiro+JWT完成的微信小程序的登录 源码地址https://github.com/Jirath-Liu/shiro-jwt-wx 微信小程序用户登陆,完整流程可参考下面官方地址,本例中是按此 ...
- php(ThinkPHP)实现微信小程序的登录过程
源码也在我的github中给出 https://github.com/wulongtao/think-wxminihelper 下面结合thinkPHP框架来实现以下微信小程序的登录流程,这些流程是结 ...
随机推荐
- mybites框架遇到的坑之Mapper.xml文件不要随意加注释和ORA-00911
原文链接:https://blog.csdn.net/streetlight8023/article/details/69388495/ 先说解决方法: org.mybatis.spring.MyBa ...
- smart-adminx项目导入依赖时,点击reinport时没反应且依赖全部报红的解决办法
依赖报红的解决办法 报红效果如下: 原因分析:下载jar包时,出现大量以.lastUpdated结尾的无效文件. 解决办法:使用bat批处理文件批量删除无效文件 set REPOSITORY_PATH ...
- .NET gRPC 核心功能初体验,附Demo源码
gRPC是高性能的RPC框架, 有效地用于服务通信(不管是数据中心内部还是跨数据中心). 由Google开源,目前是一个Cloud Native Computing Foundation(CNCF)孵 ...
- Django框架-模型层3/数据传输/Ajax
目录 一.orm查询优化 1.only与defer 2.select_related与prefatch_related 二.模型层choices参数 三.MTV与MVC模型 1.MVC 2.MTV 3 ...
- spring boot +dubbo 踩坑记录
今天初次搭建spring boot +duboo的demo.记录一下踩坑记录. 首先搭建3个小demo,一个maven项目,两个spring boot (服务提供者和服务消费者)项目. 两 sprin ...
- molloc堆区的动态内存分配
[前言]前面有一篇文章介绍了堆区栈区的区别.栈区的核心主要集中在操作一个栈结构,一般由操作系统维护.堆区,主要是我们程序员来维护,核心就是动态内存分配. 这篇笔记结束就不在高新CSAPP的读书笔记了, ...
- 阻塞队列——四组API
方式 抛出异常 有返回值,不抛出异常 阻塞等待 超时等待 添加 add() offer() put() offer(...) 移除 remove() poll() take() poll(...) 检 ...
- 用go实现常见的数据结构
目录 1 golang常见数据结构实现 1.1 链表 1.2 可变数组 1.3 栈和队列 1.3.1 原生切片实现栈和队列 1.3.1.1 切片原生栈实现 1.3.1.2 切片原生队列实现 1.3.2 ...
- 剑指 Offer 52. 两个链表的第一个公共节点 + 链表 + 第一个公共结点 + 双指针
剑指 Offer 52. 两个链表的第一个公共节点 Offer_52 题目详情 题解分析 可以使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结 ...
- PAT-1136(A Delayed Palindrome)字符串处理+字符串和数字间的转换
A Delayed Palindrome PAT-1136 我这里将数字转换为字符串使用的是stringstream字符串流 扩充:将字符串转换为数字可以使用stoi函数,函数头为cstdlib #i ...