企业微信-构造网页授权链接实现登录

news2024/9/23 17:22:54

文档地址:构造网页授权链接 - 接口文档 - 企业微信开发者中心

注意:

        1.redirect_uri:回调链接地址,需要使用urlencode对链接进行处理

        2.scope:如果需要获取成员的头像、手机号等信息需要设为snsapi_privateinfo

例如前端地址为:https://test.com

构造成的链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=https%3A%2F%2Ftest.com&response_type=code&scope=snsapi_privateinfo&state=STATE&agentid=AGENTID#wechat_redirect

已管理员身份登录企业微信后台-应用管理-创建应用:

 

设置可信域名以及可信IP:

 

 添加之后可以在企业微信-工作台中找到相关的应用,点击后会跳转到https://test.com?code=CODE,可以通过code请求后端获取到用户的相关信息

接口文档:获取访问用户身份 - 接口文档 - 企业微信开发者中心

以下为JAVA使用 weixin-java-cp的实现代码

<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-cp</artifactId>
    <version>4.0.0</version>
</dependency>
QYWeixinProperties qyWeixinProperties = SpringUtil.getBean(QYWeixinProperties.class);

// 企业微信相关配置
WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
config.setCorpId(qyWeixinProperties.getCorpId());
config.setCorpSecret(qyWeixinProperties.getCorpSecret());
config.setAgentId(qyWeixinProperties.getAgentId());

WxCpServiceImpl wxCpService = new WxCpServiceImpl();
wxCpService.setWxCpConfigStorage(config);

String mobile;

try {
    WxCpOauth2UserInfo userInfo = wxCpService.getOauth2Service().getUserInfo(code);

	if (Func.notNull(userInfo)) {
		String userId = userInfo.getUserId();
		// 用户userId
		if (Func.isBlank(userId)) {
			return;
		}
		// 根据userId查询微信中用户详情,注意需要构造链接中scope=snsapi_privateinfo且用户授权才能获取到
		WxCpUserDetail userDetail = wxCpService.getOauth2Service().getUserDetail(userInfo.getUserTicket());

		mobile = userDetail.getMobile();
		if (Func.isBlank(mobile)) {
		    return;
		}

    // 接下来是通过手机号获取用户信息的逻辑,按照自己系统的逻辑来写

	} else {
		return;
    }
} catch (WxErrorException e) {
    return;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT4.0火爆全球,是什么让它独领风骚?

ChatGPT造就了互联网历史上又一个神话&#xff0c;仅用两个月时间就成功吸引了1亿用户&#xff0c;成为全球互联网应用中增长速度最快的一个。连比尔盖茨都称&#xff1a;ChatGPT的历史意义重大&#xff0c;不亚于PC或互联网诞生。这个热度以至于ChatGPT官网长期都处于满负荷运…

射频功率放大器在S180肿瘤细胞膜研究中的应用

实验名称&#xff1a;聚焦超声对S180肿瘤细胞膜理化性质的影响 研究方向&#xff1a;生物医疗 测试目的&#xff1a; 细胞膜是细胞生命活动中有着复杂功能的重要结构其基本作用在于维持细胞内外环境的相对稳定而其通透性、完整性及流动性等理化性质则与胞内外信息传递、物质…

Unity——Mirror学习(01)

1.下载 Mirror是一个简单高效的开源的unity多人游戏网络框架&#xff0c;Mirror在Unity商店中是免费的&#xff0c;因此直接加入自己的资源库并在导入即可。 官方API地址&#xff1a;https://mirror-networking.gitbook.io/docs 2.使用 1.创建场景的网络管理器 网络管理器…

C#,生信软件实践(03)——DNA数据库GenBank格式详解及转为FASTA序列格式的源代码

1 GenBank 1.1 NCBI——美国国家生物技术信息中心&#xff08;美国国立生物技术信息中心&#xff09; NCBI&#xff08;美国国立生物技术信息中心&#xff09;是在NIH的国立医学图书馆&#xff08;NLM&#xff09;的一个分支。它的使命包括四项任务&#xff1a;1. 建立关于分…

Linux操作系统CentOS7安装Nginx[详细版]

Linux操作系统CentOS7安装Nginx[详细版] Nginx安装 1. 官网下载 Nginx 2. 使用 XShell 和 Xftp 将压缩包上传到 Linux 虚拟机中 3. 解压文件 nginx-1.20.2.tar.gz 4. 配置nginx 5. 启动 nginx 6. 拓展&#xff08;修改端口和常用命令&#xff09; &#xff08;一&#xff09;修…

QProgressBar详解

QProgressBar详解 [1] QProgressBar详解1.QProgressBar简述2.常用方法3.示例&#xff0c;比较进度条4.设置样式表 [1] QProgressBar详解 原文链接&#xff1a;https://blog.csdn.net/wzz953200463/article/details/125530997 1.QProgressBar简述 QProgressBar提供了一个水平…

Spark大数据处理讲课笔记3.5 RDD持久化机制

文章目录 零、本讲学习目标一、RDD持久化&#xff08;一&#xff09;引入持久化的必要性&#xff08;二&#xff09;案例演示持久化操作1、RDD的依赖关系图2、不采用持久化操作3、采用持久化操作 二、存储级别&#xff08;一&#xff09;持久化方法的参数&#xff08;二&#x…

docker使用集锦

docker简介 docker是一个软件&#xff0c;作用是在任意安装docker软件的系统上虚拟一个容器&#xff0c;用户可以在容器上构建任何自定义环境。 容器与虚拟机的区别在于&#xff0c;虚拟机需要对硬件也虚拟化&#xff0c;分配给虚拟机一定的资源&#xff0c;包括网卡&#xf…

SpringBoot热部署插件原理分析及实战演练

目录 1、关于热部署&#xff08;Hot Deploy&#xff09;产生的背景 1&#xff09;热部署出现前 2&#xff09;热部署出现后 2、spring-boot-devtools插件原理 1&#xff09;解决变更文件自动加载到JVM中 2&#xff09;spring-boot-devtools重启速度比手动重启快 3、关于…

最优化理论(一)Fibonacci法(python实现)

最优化理论之Fibonacci法(python实现) 纯纯干货 刚过完五一假期&#xff0c;又要回归到课程多还要兼顾每天考研复习的生活的日常了&#xff0c;这不&#xff0c;最优化理论课程又需要编写一些代码&#xff0c;鉴于网上基于python实现的系列算法很杂很散&#xff08;基本没有&…

juc--三大接口

文章目录 juc一、为什么会有juc二、juc--三大接口1.lock2.condition3.ReadWriteLock 二、juc--的默认实现类1.ReentrantLock--lock的默认实现类公平锁,非公平锁 2. ReentrantReadWriteLock读写锁--ReadWriteLock的默认实现类读写锁和排它锁 总结 juc juc: java.util.concurren…

IT行业比较吃香的技能有哪些?

前言 在互联网IT行业中&#xff0c;虽然只有短短几十年时间&#xff0c;但是技术革新一直都在&#xff0c;而且各类前沿技术层出不穷&#xff0c;不断迭代和创新。作为一个程序员&#xff0c;在互联网行业竞争很激烈的当下&#xff0c;更应该通过学习来应对日新月异的前沿技术。…

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架

目录&#xff1a; 1、【IDEA】简单入门&#xff1a;请求数据库表数据_水w的博客-CSDN博客 目录 三、 1、整合SpringSecurity依赖 2、整合Thymeleaf框架 解决css样式等静态资源访问不到的问题 三、 1、整合SpringSecurity依赖 Spring Security是一个能够为基于Spring的企业…

正则表达式学习贴

1. 前言 1.1 为什么要学习正则表达式 1.1.1 极速体验正则表达式威力 /*** 体验正则表达式的威力&#xff0c;给我们文本处理带来哪些便利*/ public class Regexp_ {public static void main(String[] args) {//假定&#xff0c;编写了爬虫&#xff0c;从百度页面得到如下文本…

网络计算模式复习(二)

网格 由于B/S架构管理软件只安装在服务器端上&#xff0c;网络管理人员只需要管理服务器就行了&#xff0c;用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现&#xff0c;极少部分事务逻辑在前端&#xff08;Browser&#xff09;实现&#xff0c;所有的客户端只有浏览器&…

李沐深度学习环境安装(包括pytorch和d2l)

李沐深度学习环境安装&#xff08;包括pytorch和d2l&#xff09; 目录一、安装Anaconda3二、安装GPU版本的pytorch三、使用jupyter notebook运行李沐书籍的源码 目录 一、安装Anaconda3 进入Anaconda官网下载&#xff1a;https://www.anaconda.com/distribution/ 安装细节不在…

小程序上车,车载小程序的信息安全是否可靠?

随着智能交通和车联网技术的快速发展&#xff0c;越来越多的车载应用程序&#xff08;APP&#xff09;进入人们的视野&#xff0c;从而推动了车载业务生态的不断发展。然而&#xff0c;车载应用程序的安全问题也引起了人们的广泛关注。为此&#xff0c;小程序容器技术作为一种有…

centos7.5 从0-1安装mysql以及基本的增删改查

系列文章目录 文章目录 系列文章目录前言一、mysql安装二、mysql客户端操作总结 前言 MySQL 是最流行的关系型数据库管理系统&#xff0c;在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 什么是…

Kubernetes(K8S)的基础概念

目录 1.Kubernetes介绍 1. 什么是Kubernetes&#xff1f; 2.为什么要用K8S? 3.k8s的特性 2.k8s集群架构与组件 1.Master组件 2.配置存储中心 — etcd 3.Node组件 3.Kubernetes 核心概念 1.Pod 2.Pod 控制器 3.Label 4.Label 选择器&#xff08;Label selector&am…

21.面向削峰填谷的电动汽车多目标优化调度策略

说明书 MATLAB代码&#xff1a;面向削峰填谷的电动汽车多目标优化调度策略 关键词&#xff1a;电动汽车 削峰填谷 多目标 充放电优化 参考文档&#xff1a;店主自己整理的说明文档&#xff0c;公式、约束、数据齐全&#xff0c;可联系我查看 仿真平台&#xff1a;MATLAB YA…