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 面向对象编程
Oct 28 Javascript
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
一个简单的js树形菜单
Dec 09 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
JavaScript中的继承之类继承
May 01 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python实现超简单的视频对象提取功能
2018/06/04 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python使用requests.session模拟登录
2019/08/09 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python代码区分大小写吗
2020/06/17 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
Python中如何定义一个函数
2016/09/06 面试题
大学毕业通用个人的求职信
2013/12/08 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
幼儿老师求职信
2014/06/30 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
身份证丢失证明
2015/06/19 职场文书