使用企业微信登录小程序

2023-11-07

概述

当小程序在企业微信端运行时,需要通过对应的登录接口获取到当前企业微信用户在当前企业的员工身份信息。

开发者需特别关注,当小程序在微信端运行时由微信派发和验证code参数,当小程序在企业微信端运行时由企业微信派发和验证code参数。两个平台的登录流程不同,微信端登录流程和接口说明见微信小程序文档,下面介绍企业微信端登录流程及接口说明。

官方链接:第三方小程序登录流程 - 接口文档 - 企业微信开发者中心

配置步骤

1.确保小程序与代码中配置的appid一致

2.获取企业微信派发的临时登录凭证,然后调用接口把登录凭证传给后端,判断是否绑定企业微信

quickLogin() {
                let _this = this
                // 调用企业微信
                wx.qy.login({
                    success: res => {
                        const params = {
                            code: res.code
                        }
                        _this.$api.apiWork_wechat_login(params).then(res => {
                            if (res.status === 200) {
                                // 调用接口判断返回状态是否绑定账号
                                if (res.data.is_bind === '0') {
                                    // 未绑定,跳转绑定界面
                                    this.$u.toast('您未绑定账号')
                                    setTimeout(() => {
                                        uni.navigateTo({
                                            url: `/pages/auth/bindLogin?user_id=${res.data.wechat_user_id}`
                                        })
                                    }, 500)
                                } else {
                                    // 已经绑定,存储信息
                                    uni.$u.vuex('isLogin', true);
                                    uni.$u.vuex('vuex_token', res.data.token);
                                    uni.$u.vuex('vuex_userInfo', res.data.user_info);
                                    uni.$u.vuex('vuex_permissions', res.data.unique_auth);
                                    uni.$u.vuex('vuex_member', res.data.user_info);
                                    uni.$u.vuex('vuex_auth', res.data.unique_auth);
                                    setTimeout(() => {
                                        _this.$u.route({
                                            type: 'reLaunch',
                                            url: 'pages/index/index'
                                        })
                                    }, 500)
                                }
                            } else {
                                this.$u.toast(res.msg)
                            }
                        })
                    },
                    fail: err => {
                        uni.showToast({
                            title: '授权登录失败,请重试',
                            icon: 'none'
                        });
                    }
                });
            },

 3.未绑定,跳转绑定页面(wechat_user_id为未绑定后后端会返回用户微信的userId)

 data() {
            return {
                account: '',
                password: '',
                wechat_user_id: ''
            }
        },
        onLoad(options) {
            this.wechat_user_id = options.user_id
        },
        methods: {
            login() {
                let _this = this
                // 处理登录用的参数
                const params = {
                    account: this.account,
                    pwd: this.password,
                    wechat_user_id: this.wechat_user_id
                }
                this.$api.apiWork_wechat_bind(params).then(res => {
                    var {
                        status,
                        data,
                        msg
                    } = res
                    if (status == 200) {
                        //登录成功
                        this.$u.toast('绑定成功');

                        //存储用户信息

                        }

                })

        }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用企业微信登录小程序 的相关文章

  • 微信小程序画布详解

    有的时候需要插入动画 这时就需要用到画布 接下来浅谈一下画布的功能和用法吧 wxml代码
  • Log Structured Merge Trees(LSM) 原理(LSM 算法的原理是什么?)

    十年前 谷歌发表了 BigTable 的论文 论文中很多很酷的方面之一就是它所使用的文件组织方式 这个方法更一般的名字叫 Log Structured Merge Tree LSM是当前被用在许多产品的文件结构策略 HBase Cassan
  • nginx basic auth配置踩坑记

    nginx的basic auth配置由ngx http auth basic module模块提供 对HTTP Basic Authentication协议进行了支持 用户可通过该配置设置用户名和密码对web站点进行简单的访问控制 basi
  • 「深度学习表情动作单元识别」 最新2022研究综述

    来源 专知 基于深度学习的表情动作单元识别是计算机视觉与情感计算领域的热点课题 每个动作单元描述了一种人脸局部表情动作 其组合可定量地表示任意表情 当前动作单元识别主要面临标签稀缺 特征难捕捉和标签不均衡3个挑战因素 基于此 本文将已有的研

随机推荐

  • js获取被选择文件的路径方法汇总

    html代码如下
  • verilog的module调用

    目录 1 MUX2to1 2 MUX3to1 3 MUX4to1 作为写过很多代码的程序员应该知道什么是函数的调用 例如下面的代码中 main函数调用了add函数对两个数值进行相加的操作 int add int a int b return
  • Asp.Net 企业微信第三方应用开发(随手笔记)

    C 企业微信第三方应用开发 OAuth2简介 1 注册企业 2 新建第三方应用 3 网页授权链接 OAuth2简介 OAuth2的设计背景 在于允许用户在不告知第三方自己的帐号密码情况下 通过授权方式 让第三方服务可以获取自己的资源信息 1
  • Vuforia 中在脚本中添加识别图被识别和丢失的回调

    start Vuforia 的unity sdk中有一个重要的脚本 DefaultTrackableEventHandler cs 这个脚本在场景中拖入ImageTarget的预制体时会自动挂载 using UnityEngine usin
  • 快速排序【模板+边界处理】

    全文目录 快速排序的思想 快速排序演示图 代码模板 i 和 j 的取值和循环处理 i 和 j 的取值 循环条件判断 边界问题 什么是边界问题 如何处理边界问题 为什么要这样处理边界问题 区间划分问题 取最值问题 mid 取中间值时是否需要
  • LLVM学习之基础知识

    介绍 学习LLVM与代码混淆技术课程总结出来的经验 希望能够帮助到大家理解 1 我们首先学会LLVM的基础知识 2 如何搭建LLVM的环境 3 编译一个Hello world 4 LLVM IR基本语法 LLVM搭建环境 Ubuntu 20
  • 让AI生成的图像转化为视频

    Hello 让AI生成图像相信都不陌生 毕竟相关内容铺天盖地 如何让AI生成的图像再转化为视频呢 让图像动起来 让图像去说话 或许是一件非常有趣的一件事情呢 那么 我们接下来要不要去试一试 马上去体验一下具有前瞻性的前沿科技呢 我想 你一定
  • 48脚STM32内部基准电压校准ADC的一些心得记录

    STM32的48脚的单片机因为没有Vref Vref 所以我们使用一些高精度参考电压芯片来提高ADC的精度很不方便 这里还有一种方法可以参考下 STM32内部有一个专门用于校准的稳压器VREFINT 它由外部的VSSA供电 他的电压一般为1
  • k8s-day1-k8s简介及基础架构

    1 K8S简介 Kubernetes是容器集群管理系统 是一个开源的平台 可以实现容器集群的自动化部署 自动扩缩容 维护等功能 Kubernetes是一个完备的分布式系统支撑平台 具有完备的集群管理能力 多扩多层次的安全防护和准入机制 多租
  • python 程序员进阶之路:从新手到高手的100个模块

    在知乎和CSDN的圈子里 经常看到 听到一些 python 初学者说 学完基础语法后 不知道该学什么 学了也不知道怎么用 一脸的茫然 近日 CSDN的公众号推送了一篇博客 题目叫做 迷思 Python 学到什么程度可以面试工作 真实反映了
  • win电脑主板设置的Bios密码清除方法

    bios保存着计算机最重要的基本输入输出的程序 开机后自检程序和系统自启动程序 它可从CMOS中读写系统设置的具体信息由于我们一般很少需求进入BIOS设置 因此久而久之 很多朋友容易忘记Bios密码 那么Bios密码忘记了怎么办呢 这是最近
  • opencv中 aplacian算子、Scharr和Sobel算子的API参数

    1 Laplacian算子 cv2 Laplacian src ddepth dst ksize scale delta borderType src 输入图像 通常为灰度图像 单通道 ddepth 输出图像的深度 一般使用cv2 CV 6
  • Spring中有哪些情况会导致@Bean注入失效呢?

    转自 Spring中有哪些情况会导致 Bean注入失效呢 下文笔者讲述Spring中导致 bean注入失败的相关情况说明 如下所示 实现思路 1 component scan扫描路径配置错误 2 Conditional修饰条件 3 bean
  • 学习swift的资料

    https developer apple com library content documentation Swift Conceptual Swift Programming Language CollectionTypes html
  • 数据库表创建索引

    创建一个表 创建名为 Person 的表 有四个列 列名是 LastName FirstName Address 以及 Age 定义列的长度 CREATE TABLE Person LastName varchar 30 FirstName
  • 使用scrapy框架爬取51job的关于python的职位,并且进行分析

    example py 爬虫的主文件 大部分的爬虫逻辑都在这 coding utf 8 import scrapy import pyecharts from items import Scrapy3Item class ExampleSpi
  • cpp: Strategy Pattern

    Gold h 此文件包含 Gold 类 策略模式 Strategy Pattern C 14 2023年5月1日 涂聚文 Geovin Du Visual Studio 2022 edit pragma once ifndef GOLD H
  • MySql中的数据修改

    1 insert插入操作 单行插入的语法格式 INSERT INTO student 列表1 列表2 列表3 列表4 列表5 列表6 VALUES 值1 值1 值1 值1 值1 值1 INSERT INTO student id name
  • python赋值、深拷贝和浅拷贝的区别详解

    一 前言 在python中 对象赋值实际上是对象的引用 当创建一个对象 然后把它赋值给另一个变量的时候 python并没有拷贝这个对象 而只是拷贝了这个对象的引用 二 区别 1 直接赋值 默认浅拷贝传递对象的引用而已 原始列表改变 被赋值的
  • 使用企业微信登录小程序

    概述 当小程序在企业微信端运行时 需要通过对应的登录接口获取到当前企业微信用户在当前企业的员工身份信息 开发者需特别关注 当小程序在微信端运行时由微信派发和验证code参数 当小程序在企业微信端运行时由企业微信派发和验证code参数 两个平