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 相关文章推荐
prototype Element学习笔记(篇一)
Oct 26 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
在JavaScript中处理数组之reverse()方法的使用
Jun 09 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
基于Bootstrap框架实现图片切换
Mar 10 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
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
PHP.MVC的模板标签系统(一)
2006/09/05 PHP
用PHP4访问Oracle815
2006/10/09 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
composer.lock文件的作用
2016/02/03 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
利用Python批量生成任意尺寸的图片
2016/08/29 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
外贸员简历中的自我评价
2014/03/04 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
安全隐患整改报告
2014/11/06 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python