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 相关文章推荐
7个Javascript地图脚本整理
Oct 20 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
layui 对弹窗 form表单赋值的实现方法
Sep 04 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 Javascript
封装 axios+promise通用请求函数操作
Aug 11 Javascript
一篇文章带你从零快速上手Rollup
Sep 07 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
拖拉表格的JS函数
2008/11/20 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
python构造IP报文实例
2020/05/05 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
小学新学期教师寄语
2014/01/18 职场文书
求职面试个人自我评价
2014/02/28 职场文书
企业党员公开承诺书
2014/03/26 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
统计员岗位职责范本
2015/04/14 职场文书
爱心捐助活动总结
2015/05/09 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL