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 相关文章推荐
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
JavaScript实现获取dom中class的方法
Feb 09 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
原生js实现可拖动的登录框效果
Jan 21 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
js基础之事件捕获与冒泡原理
Oct 09 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 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 tp验证表单与自动填充函数代码
2012/02/22 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
酒店开业庆典策划方案
2014/05/28 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
统计员岗位职责范本
2015/04/14 职场文书
爱国影片观后感
2015/06/18 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
使用Redis实现分布式锁的方法
2022/06/16 Redis