企业微信中授权小程序

2023-11-10

  1. 授权的时候先判断当前小程序运行环境
    使用企业微信专有接口wx.getSystemInfo
 if (res["environment"]=='wxwork') {
          // 企业微信环境
          wx.qy.login({//获取企业微信派发的临时登录凭证
            success: res => {
              console.log('企业微信用户授权', e);
              if (res.errMsg == "qy__login:ok") {
              //开发者需要在开发者服务器后台调用 api,使用 code 换取 userid 和 session_key 等信息
              uni.setStorageSync('code', res.code);
                    try {
                    //企业微信用户授权拿取token
                      loginFn(e).then(res => {
                        if (res) {
                        //授权成功
                        
                          resolve(true)
                        } else {
                          resolve(false)
                        }
                      })
                    } catch (e) {
                      resolve(false)
                      console.error(e)
                    }
                 
              } else {
                resolve(false)
                uni.showToast({
                  title: '系统异常,请联系管理员!'
                })
              }
            }
          });
        }
  1. 用wx.qy.login获取企业微信派发的临时登录凭证code和后端约定获取 userid 和 session_key 等信息
//企业微信用户授权拿取token
export const loginFn = e => {
  return new Promise((resolve, reject) => {
  //和后端约定接口
    userLogin({
      encryptedData: e.encryptedData,
      iv: e.iv,
      code: uni.getStorageSync('code')
    }).then(res => {
      if (res.code == 0) {
        storage.addToken(`Bearer ${res.data.token}`)
        resolve(true)
      } else {
        uni.clearStorageSync();
        uni.showToast({
          title: res.message,
          mask: true,
          icon: 'none'
        })
        resolve(false)
      }
    }).catch(erroe => {
      reject(false)
      uni.showToast({
        title: '授权登录失败!请重新登录',
        mask: true,
        icon: 'none'
      })
    });
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

企业微信中授权小程序 的相关文章

随机推荐

  • linux启动redis失败,解决redis服务启动失败的问题

    最近学redis 就遇到了各种坑 在这里分享一下 我是将redis做成后台 安装 配置环境变量统统省略掉了 做成后台服务呢 首先 cd到redis的安装目录下 再cd到util 接着执行 install server sh 然后修改服务名称
  • windows批处理文件删除n天前的文件

    author skate time 2010 12 23 windows批处理文件删除n天前的文件 用批处理文件删除n天前的文件如果操作系统是 Windows Server 2003 那就好办了 因为它有一个forfiles命令能够查找满足
  • BI大数据名词术语

    大数据的出现带来了许多新的术语 但这些术语往往比较难以理解 因此 我们通过本文给出一个常用的大数据术语表 抛砖引玉 供大家深入了解 部分定义参考了相应的博客文章 A 聚合 Aggregation 搜索 合并 显示数据的过程 算法 Algor
  • Postman之全局变量、环境变量

    1 什么是环境变量 环境变量 postman可以自定义环境参数值 这样就不用每次请求都去输入某些值 直接引用设置的值 使我们的测试更方便 例如 通过变换环境变量来快速变换环境地址 可将本地 测试环境的IP添加至不同的环境变量 调用时使用 x
  • 'react-scripts' 不是内部或外部命令 、propTypes is not defined 解决办法

    在手动安装了React 提供的第三方库 prop types报错的 我的React 就报错运行不了了 报错如下 react scripts 不是内部或外部命令 也不是可运行的程序 或批处理文件 这是一个在学习React 踩的坑 百度了一下
  • webpack打包vue

    在Windows10系统下 自定义打包整个Vue文件夹项目的相关配置项涉及以下内容 安装Node js和npm Node js官网 https nodejs org en download npm是Node js的包管理工具 在Node j
  • JDK8 Date 日期常用使用方法

    JDBC日期的转换 最新JDBC映射将把数据库的日期类型和Java 8的新类型关联起来 SQL gt Java date gt LocalDate time gt LocalTime timestamp gt LocalDateTime L
  • X11相关参数设置

    X11相关参数设置 X11 环境变量 DISPLAY 用来设置将图形显示到何处 变量格式 Xlib connection to 0 0 refused by server 开关闭屏幕显示 连接实际屏幕 确认实际屏幕的name of disp
  • 模式识别和计算机应用(转载)

    导读 只是覆盖了很小的范围 但总结的不错 1 数学方面 1 矩阵的各种分解 比如 LU QR Cholesky SVD Polar 2 广义逆与子空间 3 最小二乘法 特别齐性方程Ax b的各种解法及其几何意义 4 凸分析与凸优化的基本知识
  • 8种专坑同事的 SQL 写法,性能降低100倍,你学会了吗?

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 14 分钟 来自 juejin cn post 6844903998974099470 1 LIMIT 语句 分页查询是最常用的场景之一 但也通常也是最容易出问题的地
  • R语言Logistic回归模型深度验证以及Nomogram绘制

    R语言Logistic回归模型深度验证以及Nomogram绘制 小易学统计 互联网医疗统计师 自立 爱家人 15 人 赞同了该文章 01 研究背景
  • openwrt解除软件包安装限制

    Openwrt解除验证限制 sed i s tdetect package t detect package g koolshare scripts ks tar install sh
  • 安卓开发笔记——关于java.lang.RuntimeException: Unable to start activity ComponentInfo{......}问题的解决方案

    笔者在实现一个消息上下轮播时 遇到APP闪退 将日志打印出来 Process com ghl intelligence PID 6557 java lang RuntimeException Unable to start activity
  • 公众号如何快速接入查题功能

    最近很多同学私信小睿 我不会编程 写代码 我怎么能做一个自己的查题公众号呢 既然这么多同学最近在问 那小睿今天就来告诉大家 调用量瞩目 首先你需要一个查题的接口 然后配置到公众号内就可以了 那么接口从哪儿来呢 当然是找小睿啦 小睿为了使大家
  • 内核自带的基于GPIO的LED驱动学习(二)

    2 分析平台驱动的probe函数 好 既然这个LED驱动使用的是平台驱动框架 当设备和驱动匹配上之后 就会执行指定的probe函数 那接下来的工作就转移到分析对应的probe函数了 为了直观 我把probe函数也粘贴上来 static in
  • 【计算机网络】湖科大微课堂笔记 p2-p3 因特网概述、三种交换方式

    视频 计算机网络已从通信基础设施发展成重要的信息服务基础设施 因特网概述 网络 互联网和因特网的概念 理解 因特网发展的三个阶段 了解 因特网的标准化工作 了解 因特网的组成 理解 网络 互联网和因特网的概念 理解 左图是网络 右图是互联网
  • 转:《C++ Templates》读书笔记

    有三种模板参数 形参 1 类型参数 这是使用得最多的 2 非类型参数 3 模板的模板参数 类型参数 类型参数是通过关键字typename或者class引入 关键字后面必须是一个简单的标识符 后面用逗号来隔开下一个参数声明 等号代表接下来的是
  • U盘病毒 hypertrm.exe 修复

    1 最近电脑中了这种病毒 没有直观的感觉 不会蓝屏 也不会有其他任何异样 恶心的是他在我每次插入U盘的时候会提示INF默认安装 我没有对病毒样本做分析 感觉他只是创建了系统钩子 导致我尽管杀掉了u盘里所有的病毒 再次插上一切还会重来 2 解
  • String转字节数组

    Java语言中字符串类型和字节数组类型相互之间的转换是经常发生的 网上的分析以及代码也比较多 本文将分析分析常规的byte 和String之间的转换 1 String转byte 就是调用String类的getBytes 方法 如果没有带参数
  • 企业微信中授权小程序

    授权的时候先判断当前小程序运行环境 使用企业微信专有接口wx getSystemInfo if res environment wxwork 企业微信环境 wx qy login 获取企业微信派发的临时登录凭证 success res gt