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 相关文章推荐
js获取html文件的思路及示例
Sep 17 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
Highcharts学习之数据列
Aug 03 Javascript
Vue 单文件中的数据传递示例
Mar 21 Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
TypeScript开发Node.js程序的方法
Apr 30 Javascript
JS闭包原理及其使用场景解析
Dec 03 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php二维数组合并及去重复的方法
2015/03/04 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
理解JavaScript中的对象
2020/08/25 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Python常用库大全及简要说明
2020/01/17 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
游戏商店:Eneba
2020/04/25 全球购物
最新教师自我评价分享
2013/11/12 职场文书
道德演讲稿
2014/05/21 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
五心教育心得体会
2014/09/04 职场文书
三八妇女节主持词
2015/07/04 职场文书