uni-app -- 授权获取个人信息-登录注册流程
小程序授权
- 1. 梳理思路
- 2. 步骤拆分
- 2.1 获取用户当前获取权限的状态
- 2.2 获取个人信息,让用户进行授权
- 2.3 引导用户再次授权
每一个你不满意的现在,都有一个你没有努力的曾经
在写小程序时,有时不授权获取信息也能获取到,但有时就会出现报错问题。
那么,怎么一个流程才是正确的登录流程呢?
文章以快手小程序 授权获取个人信息
为例
1. 梳理思路
要注册登录,首先就要获取到个人信息。
要获取到个人信息,就要用户先授权
如果首次授权拒绝了,如何再次引导授权
2. 步骤拆分
如果着急的同学,可以直接看2.3 引导用户再次授权
部分
2.1 获取用户当前获取权限的状态
getSet() {uni.getSetting({success(getRes) => {console.log('获取到的权限的状态', getRes)}})
}
打印的日志如图:
可以看到,默认都是undefined
,即用户没有授权的情况。
2.2 获取个人信息,让用户进行授权
methods: {// 获取授权状态getSet() {let _this = this;uni.getSetting({success(getRes) {console.log('获取到的权限的状态', getRes)// 如果值为true,即代表已经授权if (getRes.authSetting['scope.userInfo']) {// 已经授权,直接注册登录} else {// 尚未授权,前往授权_this.auth()}}})},// 进行授权auth() {console.log('需要授权')uni.authorize({scope: 'scope.userInfo',success(authRes) {console.log('成功授权', authRes)uni.getUserInfo({desc: '我要获取你的信息!',success: function(userRes) {console.log('获取个人信息成功', userRes)},fail(err) {console.log('获取个人信息失败', err)}})},fail(err) {console.log('拒绝授权', err)}})},
}
首次授权操作,如果用户选择拒绝授权
,将打印日志如下:
2.3 引导用户再次授权
methods: {// 获取授权状态getSet() {let _this = this;uni.getSetting({success(getRes) {console.log('获取到的权限的状态', getRes)console.log('获取权限状态', getRes.authSetting['scope.userInfo'])// 如果值为true,即代表已经授权if (getRes.authSetting['scope.userInfo']) {// 已经授权,直接获取个人信息_this.getProfile()} else if (getRes.authSetting['scope.userInfo'] == undefined) {// 值为undefined 代表是首次进行授权操作// 尚未授权,前往授权_this.auth()} else {// 值为false 代表是首次授权拒绝后再次打开的操作// 引导再次授权uni.showModal({title: '授权',content: '需要授权获取个人信息,是否前往授权设置?',success: function(showRes) {// 如果确认去授权if (showRes.confirm) {return uni.openSetting({success(openRes) {openRes.authSetting['scope.userInfo'] = true;_this.getSet();}})}}})}}})},// 进行授权auth() {let _this = this;console.log('需要授权')uni.authorize({scope: 'scope.userInfo',success(authRes) {console.log('成功授权', authRes)_this.getProfile()},fail(err) {console.log('拒绝授权', err)}})},//获取个人信息getProfile() {uni.getUserInfo({desc: '我要获取你的信息!',success: function(userRes) {console.log('获取个人信息成功', userRes)// 前往注册、登录即可},fail(err) {console.log('获取个人信息失败', err)}})}
}
再次调用getSet()
打印出的日志如图:
此时会看到引导再次授权的弹窗
点击确定,就会跳转至授权页面
授权成功回来,会再次打开获取个人信息的弹窗
此时可以看到授权状态为
注意:此时逻辑走的是第一种情况,即:
此时就可获取到个人信息
再之后,就可执行后续登录注册的逻辑了
uni-app -- 授权获取个人信息-登录注册流程相关推荐
- uni app和php开发微信登录代码,uniapp如何实现微信授权登录
uniapp实现微信授权登录的方法:首先获取对应的appid和appsecret:然后在uniapp项目的manifest.json中进行APP SDK配置和模块权限配置.最后实现编码. 本教程操作环 ...
- App测试经验分享之登录注册
本文作者:HkGov 本文链接:https://www.cnblogs.com/hkgov/p/7451548.html 要诀 另外自己总结了一些要诀,仅供参考: 1)快:快速操作,营造冲突的场景,例 ...
- asp.net获取浏览器的唯一标识_vue单页面应用如何在微信浏览器里进行网页授权获取用户信息
前言 在vue单页面应用比较流行的时代,如何把vue应用和微信公众号两者结合在一起也是比较常见的功能.如果仅仅是把一个vue应用放在公众号上,没有进行额外的微信功能开发,如:获取用户信息,支付,分享等 ...
- vue h5微信公众号授权获取用户信息
vue h5微信公众号授权获取用户信息 1.申请测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.修改网页授权 ...
- PHP 微信网页授权获取用户信息
最近用到过微信用户授权获取用户信息的功能,在这里记录一下. 因为用户授权要用到认证过的服务号才有权限,而线上正在使用公众号,而开发就有些不方便了,这里可以申请一个微信公众测试号. 1.申请一个微信公众 ...
- java 实现获取支付宝授权获取会员信息
1.配置支付宝所需参数 2.实现类 Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息: @ApiOperation(value = "拼接支付宝授权页面所需参数 ...
- 支付宝 网页授权 获取用户信息
****** 支付宝 网页授权 获取用户信息(昵称,头像等)****** 最近有个项目 需要获取到支付宝的头像和昵称作为互动数据,作为php新人,对于看文档来说 很是痛苦,网上也没有很多关于支付宝网页 ...
- Spring Boot 微信-网页授权获取用户信息
微信-验证服务器有效性 微信-网页授权获取用户信息 网页授权获取用户信息步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sc ...
- Java-(二)微信小程序授权获取用户信息和手机号码
第一篇我们已经知道了微信小程序怎么授权登录获取用户信息. openId 和 unionId .下面将高速告诉大家,微信小程序如何授权获取用户信息和手机号码. 微信官方文档:https://develo ...
最新文章
- 提升jmeter自身性能
- Web安全测试检查单
- Java 序列化Serializable详解(附详细例子)
- 晨紫华(帮别人名字作诗)
- linux下根据端口查进程,linux根据进程查端口,根据端口查进程
- MySql关键字-保留字
- MySQL5.7 编译安装
- 浅谈数学在c语言编程中的,试论C语言程序设计中算法设计的作用
- 配置静态路由使用下一跳IP地址和使用出接口的区别
- Windows PE文件各个节(Section)分析
- OSG-简单模型控制
- 薄膜收放卷张力控制问题
- 推荐--jQuery使用手册 1
- IOCP的一些思考(粘包,断包的处理)
- The value of the local variable xxx is not usedJava解决办法
- RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装
- 转载出去:http://blog.csdn.net/han_xiaoyang/article/details/11969497
- 计算机毕业设计asp.net校园二手物品交易平台(源码+系统+mysql数据库+Lw文档)
- word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估(转)
- 7个管理学常用工具:SWOT、PDCA、6W2H、SMART、WBS、二八原则