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中String类的subString()方法和slice()方法
May 24 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
深入理解angular2启动项目步骤
Jul 15 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
Vue文件配置全局变量的实例
Sep 06 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
Node.js中出现未捕获异常的处理方法
Jun 29 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
php中explode与split的区别介绍
2012/10/03 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
js 中的switch表达式使用示例
2020/06/03 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
UML设计模式笔试题
2014/06/07 面试题
大学毕业生自荐书怎么写?
2014/01/06 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
希特勒的演讲稿
2014/05/23 职场文书
承诺书样本
2014/08/30 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
八月迷情观后感
2015/06/11 职场文书
暑假打工感想
2015/08/07 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
PHP策略模式写法
2021/04/01 PHP
Docker官方工具docker-registry案例演示
2022/04/13 Servers