uni-app微信小程序登录授权的实现


Posted in Javascript onMay 22, 2020

微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点:

uni-app微信小程序登录授权的实现

首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接口写到该事件里面去

<button class="sys_btn" open-type="getUserInfo" lang="zh_CN" @getuserinfo="appLoginWx">{{loginInfo.openid != "" && loginInfo.openid != undefined ? "已授权" : "小程序授权"}}</button>

方法如下:

appLoginWx(){
        // #ifdef MP-WEIXIN
          uni.getProvider({
           service: 'oauth',
           success: function (res) {
            if (~res.provider.indexOf('weixin')) {
              uni.login({
                provider: 'weixin',
                success: (res) => {
                  _self.authorization = res.code;
                  uni.getUserInfo({
                    provider: 'weixin',
                    success: (info) => {//这里请求接口
                      console.log(res);
                      console.log(info);
                      
                    },
                    fail: () => {
                      uni.showToast({title:"微信登录授权失败",icon:"none"});
                    }
                  })
              
                },
                fail: () => {
                  uni.showToast({title:"微信登录授权失败",icon:"none"});
                }
              })
              
            }else{
              uni.showToast({
                title: '请先安装微信或升级版本',
                icon:"none"
              });
            }
           }
          });
          //#endif
      }

在 uni.login 和 uni.getUserInfo 被调用后,你可以获取到以下值用于继续请求后端给你的接口:

常用的值大概有:code 、iv 、encryptedData 和 个人基本信息,这些可以传给后端交换得到openid。

uni-app微信小程序登录授权的实现

如果需要知道用户当前是否已经授权,则可以使用如下代码:

uniapp的授权文档,可以判断不同的授权类型:https://uniapp.dcloud.io/api/other/authorize?id=authorize

// #ifdef MP-WEIXIN
      uni.getSetting({
       success(res) {
        console.log("授权:",res);
        if (!res.authSetting['scope.userInfo']) {
          //这里调用授权
          console.log("当前未授权");
        } else {
          //用户已经授权过了
          console.log("当前已授权");
        }
       }
      })
      //#endif

到此这篇关于uni-app微信小程序登录授权的实现的文章就介绍到这了,更多相关uni-app小程序登录授权内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript实现的分页函数
Dec 22 Javascript
javascript 面向对象全新理练之原型继承
Dec 03 Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
微信小程序 animation API详解及实例代码
Oct 08 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
May 10 Javascript
vue实现分页组件
Jun 16 Javascript
详解使用uni-app开发微信小程序之登录模块
May 09 Javascript
简单了解JavaScript异步
May 23 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 #jQuery
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 #jQuery
uni-app使用微信小程序云函数的步骤示例
May 22 #Javascript
AutoJs实现刷宝短视频的思路详解
May 22 #Javascript
jquery更改元素属性attr()方法操作示例
May 22 #jQuery
微信小程序转化为uni-app项目的方法示例
May 22 #Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 #Javascript
You might like
用PHP函数解决SQL injection
2006/10/09 PHP
php自动加载机制的深入分析
2013/06/08 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
Javascript中的arguments与重载介绍
2015/03/15 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
基于JavaScript实现单例模式
2019/10/30 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
用Python实现职工信息管理系统
2020/12/30 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
《灯光》教学反思
2014/02/08 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
关键在于落实心得体会
2014/09/03 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
Nginx反向代理、重定向
2022/04/13 Servers
Python 文字识别
2022/05/11 Python
canvas 中如何实现物体的框选
2022/08/05 Javascript