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插件之打造自定义的select标签
Nov 30 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
vue+express 构建后台管理系统的示例代码
Jul 19 Javascript
TypeScript开发Node.js程序的方法
Apr 30 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
基于ts的动态接口数据配置的详解
Dec 18 Javascript
VsCode里的Vue模板的实现
Aug 12 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php 远程关机操作的代码
2008/12/05 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
List the Codec Files on a Computer
2007/06/11 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
python如何对实例属性进行类型检查
2018/03/20 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
技术经理的自我评价范文
2013/12/03 职场文书
自我评价的范文
2014/02/02 职场文书
升旗仪式演讲稿
2014/05/08 职场文书