小程序授权

  • 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 -- 授权获取个人信息-登录注册流程相关推荐

  1. uni app和php开发微信登录代码,uniapp如何实现微信授权登录

    uniapp实现微信授权登录的方法:首先获取对应的appid和appsecret:然后在uniapp项目的manifest.json中进行APP SDK配置和模块权限配置.最后实现编码. 本教程操作环 ...

  2. App测试经验分享之登录注册

    本文作者:HkGov 本文链接:https://www.cnblogs.com/hkgov/p/7451548.html 要诀 另外自己总结了一些要诀,仅供参考: 1)快:快速操作,营造冲突的场景,例 ...

  3. asp.net获取浏览器的唯一标识_vue单页面应用如何在微信浏览器里进行网页授权获取用户信息

    前言 在vue单页面应用比较流行的时代,如何把vue应用和微信公众号两者结合在一起也是比较常见的功能.如果仅仅是把一个vue应用放在公众号上,没有进行额外的微信功能开发,如:获取用户信息,支付,分享等 ...

  4. vue h5微信公众号授权获取用户信息

    vue h5微信公众号授权获取用户信息 1.申请测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.修改网页授权 ...

  5. PHP 微信网页授权获取用户信息

    最近用到过微信用户授权获取用户信息的功能,在这里记录一下. 因为用户授权要用到认证过的服务号才有权限,而线上正在使用公众号,而开发就有些不方便了,这里可以申请一个微信公众测试号. 1.申请一个微信公众 ...

  6. java 实现获取支付宝授权获取会员信息

    1.配置支付宝所需参数 2.实现类 Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息: @ApiOperation(value = "拼接支付宝授权页面所需参数 ...

  7. 支付宝 网页授权 获取用户信息

    ****** 支付宝 网页授权 获取用户信息(昵称,头像等)****** 最近有个项目 需要获取到支付宝的头像和昵称作为互动数据,作为php新人,对于看文档来说 很是痛苦,网上也没有很多关于支付宝网页 ...

  8. Spring Boot 微信-网页授权获取用户信息

    微信-验证服务器有效性 微信-网页授权获取用户信息 网页授权获取用户信息步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sc ...

  9. Java-(二)微信小程序授权获取用户信息和手机号码

    第一篇我们已经知道了微信小程序怎么授权登录获取用户信息. openId 和 unionId .下面将高速告诉大家,微信小程序如何授权获取用户信息和手机号码. 微信官方文档:https://develo ...

最新文章

  1. 提升jmeter自身性能
  2. Web安全测试检查单
  3. Java 序列化Serializable详解(附详细例子)
  4. 晨紫华(帮别人名字作诗)
  5. linux下根据端口查进程,linux根据进程查端口,根据端口查进程
  6. MySql关键字-保留字
  7. MySQL5.7 编译安装
  8. 浅谈数学在c语言编程中的,试论C语言程序设计中算法设计的作用
  9. 配置静态路由使用下一跳IP地址和使用出接口的区别
  10. Windows PE文件各个节(Section)分析
  11. OSG-简单模型控制
  12. 薄膜收放卷张力控制问题
  13. 推荐--jQuery使用手册 1
  14. IOCP的一些思考(粘包,断包的处理)
  15. The value of the local variable xxx is not usedJava解决办法
  16. RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装
  17. 转载出去:http://blog.csdn.net/han_xiaoyang/article/details/11969497
  18. 计算机毕业设计asp.net校园二手物品交易平台(源码+系统+mysql数据库+Lw文档)
  19. word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估(转)
  20. 7个管理学常用工具:SWOT、PDCA、6W2H、SMART、WBS、二八原则

热门文章

  1. 模拟JS触发按钮点击功能
  2. 机器人开发--电机中的电流环、速度环、位置环
  3. Nt**、Zw**和Rtl** 开头的函数介绍
  4. Ribbon+LoadBalance
  5. ZIgbee无线单片机系列芯片CC2430
  6. 陀螺仪器件选型MPU6050、BMX055、icm20602
  7. TLE7242-2G
  8. 前端入门学习笔记九十三
  9. 使用Matlab实现AHP算法
  10. 科技新品 | 卡西欧高性能金属腕表;佳能大幅面打印机;三星2亿像素传感器