微信公众号网页授权登录获取用户基本信息

概述

微信公众号网页授权登录后微信获取用户基本信息,部署即可运行完整demo

详细

一、前言

(1)适合人群

1,JAVA服务端开发人员

2,初级人员开发人员

3,了解spring springboot + maven

3,了解公众号开发

(2)你需要准备什么?

1,积极主动学习

2,微信公众号开发基本流程

3,java后端几大框架掌握如(spring springboot maven mybatis)

二、前期准备工作

软件环境:日食

官方下载:HTTPS://www.eclipse.org/downloads/

(1)基本需求

实现微信授权登陆带参数获取用户基本信息

(2)项目目录结构

image.png

三、实现步骤

(1)官方流程 

 网页授权流程分为四步: 

a、引导用户进入授权页面同意授权,获取code 

b、通过code换取网页授权access_token(与基础支持中的access_token不同) 

c、如果需要,开发者可以刷新网页授权access_token,避免过期 

d、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

1.填写授权回调页面域名

进入测试公众号,在体验接口权限表中找到网页帐号,右侧添加自己的域名,测试公众号可填写本地IP,如你是正式公众号只能填写自己的域名,如果未填写,当进行接口调用时,会提示:redirect_uri参数错误!如果还有其他不了解的配置,可以在开发文档里查看详信息,

a11.png

a12.png

2,下面展示访问个人中心时,进行用户授权

<span style="font-family: 微软雅黑, "Microsoft YaHei";">     @RequestMapping("/weixinAutoLogin")<br>       public void weixinAutoLogin(String userId,HttpServletRequest request, HttpServletResponse response) throws IOException {<br>           response.setHeader("Access-Control-Allow-Origin", "*");<br>            /**<br>          *这儿一定要注意!!首尾不能有多的空格(因为直接复制往往会多出空格),其次就是参数的顺序不能变动<br>           **/<br>           String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + AuthUtil.APPID +<br>                  "&redirect_uri=" + URLEncoder.encode(AuthUtil.Notify_url, "UTF-8") +<br>                    "&response_type=code" +<br>                    "&scope=snsapi_userinfo" +<br>                 "&state=" + userId +<br>                 "#wechat_redirect";<br>         response.sendRedirect(url);<br>     }<br></span>

3,在微信打开地址测试 http://ib58jt.natappfree.cc/weixinAutoLogin?userId=1 如图

image.png

4,用户同意授权后

第一先请求 code:code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。第二步通过刚请求来的 code去请求access_token和openid,第三部就是通过刚获取的access_token和openid来请求用户信息。

image.png

5,下面提供一个内网映射外网,软件下载地址还有教程可以做公众号开发

https://www.toutiao.com/a6470112787753337358/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1534840577&app=news_article&utm_source=weixin&iid=40869406995&utm_medium=toutiao_android&group_id=6470112787753337358

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

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

相关文章

k8s部署gin-vue-admin框架、gitlab-ci、jenkins pipeline 、CICD

测试环境使用的jenkins 正式环境使用的gitlab-ci 测试环境 创建yaml文件 apiVersion: v1 kind: ConfigMap metadata:name: dtk-go-tiktok-admin-configlabels:app.kubernetes.io/name: dtk-go-tiktok-adminapp.kubernetes.io/business: infrastructureapp.kubernetes.io/run…

中国312个历史文化名镇及景区空间点位数据集

一部中华史&#xff0c;既是人类创造丰富物质财富的奋头史&#xff0c;又是与自然共生共存的和谐史不仅留存下悠久丰富的人文思想和情怀&#xff0c;还在各处镌刻下可流传的生活场景&#xff0c;历史文化名镇(以下简称:名镇)就是这样真实的历史画卷。“镇”是一方的政治文化中心…

Elasticsearch:使用 Elasticsearch 进行语义搜索

在数字时代&#xff0c;搜索引擎在通过浏览互联网上的大量可用信息来检索数据方面发挥着重要作用。 此方法涉及用户在搜索栏中输入特定术语或短语&#xff0c;期望搜索引擎返回与这些确切关键字匹配的结果。 虽然关键字搜索对于简化信息检索非常有价值&#xff0c;但它也有其局…

红黑树是如何实现的?

文章目录 一、红黑树的概念二、红黑树的性质三、红黑树和AVL树对比四、红黑树的插入1. 红黑树的结点定义2. 父亲的颜色3. 叔叔的颜色为红色4. 叔叔不存在5. 叔叔存在且为黑6. 插入的抽象图 五、红黑树的验证1. 检查平衡2. 计算高度与旋转次数3. 验证 六、 红黑树与AVL树的比较 …

【数据结构】——顺序表详解

大家好&#xff01;当我们学习了动态内存管理后&#xff0c;就可以写一个管理数据的顺序表了&#xff01;&#xff01;&#xff01; 顺序表的理解&#xff1a; 线性表是最基本、最简单、也是最常用的一种数据结构。线性表&#xff08;linear list&#xff09;是数据结构的一种…

青藏高原1-km分辨率生态环境质量变化数据集(2000-2020)

青藏高原平均海拔4000米以上&#xff0c;人口1300万&#xff0c;是亚洲九大河流的源头&#xff0c;为超过15亿人口提供淡水、食物和其他生态系统服务&#xff0c;被誉为地球第三极和亚洲水塔。然而&#xff0c;在该地区的人与自然的关系的研究是有限的&#xff0c;尤其是在精细…

高德地图根据两点的经纬度计算两点之间的距离(修正版)

SQL语句可以用来计算两个经纬度之间的距离。下面是一个示例的SQL语句&#xff1a; SELECT id, ( 6371 * ACOS( COS( RADIANS( lat1 ) ) * COS( RADIANS( lat2 ) ) * COS( RADIANS( lng2 ) - RADIANS( lng1 ) ) SIN( RADIANS( lat1 ) ) * SIN( RADIANS( lat2 ) ) ) ) AS dista…

PyTorch - 模型训练损失 (Loss) NaN 问题的解决方案

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/133378367 在模型训练中&#xff0c;如果出现 NaN 的问题&#xff0c;严重影响 Loss 的反传过程&#xff0c;因此&#xff0c;需要加入一些微小值…

【SQL Server】外键约束

外键约束 前序外键约束 前序 在很多场景里面&#xff0c;都会用到外键来关联两张表或两张以上的表之间主从关系&#xff0c;从而来快捷地通过外键字段来查询数据之间的联系。 其实外键在我的概念中还是比较模糊的&#xff0c;没有真正地使用过。大多数情况下&#xff0c;我都…

Pandas 2.1中的新改进和新功能

大家好&#xff0c;Pandas 2.1于2023年8月30日发布&#xff0c;跟随本文一起看看这个版本引入了哪些新内容&#xff0c;以及它如何帮助用户改进Pandas的工作负载&#xff0c;包含了一系列改进和一组新的弃用功能。 Pandas 2.1在Pandas 2.0中引入的PyArrow集成基础上进行了大量…

【RabbitMQ实战】07 3分钟部署一个RabbitMQ集群

一、集群的安装部署 我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群&#xff0c;开始。 前提条件&#xff0c;docker安装了docker-compose。如果没安装的话&#xff0c;参考这里 docker-compose文件参考bitnami官网&#xff1a;https://github.com/bitnami/contai…

巧用@Conditional注解根据配置文件注入不同的bean对象

项目中使用了mq&#xff0c;kafka两种消息队列进行发送数据&#xff0c;为了避免硬编码&#xff0c;在项目中通过不同的配置文件自动识别具体消息队列策略。这里整理两种实施方案&#xff0c;仅供参考&#xff01; 方案一&#xff1a;创建一个工具类&#xff0c;然后根据配置文…

Swift 周报 第三十八期

文章目录 前言新闻和社区苹果自研调制解调器芯片受挫&#xff1a;速度太慢容易过热&#xff0c;落后高通 3 年App Store 现已接受适用于最新版操作系统的 App 和游戏提交 提案通过的提案正在审查的提案驳回的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组…

弹性资源组件elastic-resource设计(一)-架构

简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详细设计,指导开发人员代码开发 关键词 作业管理器/资源管理器/…

duilib 之 各种消息框

本文主要介绍,使用同一个布局文件,生成不同样式消息框是如何实现的。 目录 一、消息框 1、不同消息框展示 2、实现方式 1)、布局, 2)、扩展 MsgB

简易实现通讯录(2.0)

这篇文章是在上期实现的通讯录基础上&#xff0c;增加了自动增容的功能&#xff0c;也解决了一开始通讯录自动开辟一个空间&#xff0c;可能会浪费空间&#xff0c;或者是信息过多无法增容的痛点&#xff0c;由于我们使用的是malloc这类函数来开辟空间&#xff0c;我们也需要来…

vue 实现弹出菜单,解决鼠标点击其他区域的检测问题

弹出菜单应该具有的功能&#xff0c;当鼠标点击其他区域时&#xff0c;则关闭该菜单。 问题来了&#xff0c;怎么检测鼠标点击了其他区域而不是当前菜单&#xff1f; 百度“JS检测区域外的点击事件”&#xff0c;会发现有很多方法&#xff0c;有递归检测父元素&#xff0c;有遍…

大语言模型LLM知多少?

你知道哪些流行的大语言模型?你都体验过哪写? GPT-4,Llamma2, T5, BERT 还是 BART? 1.GPT-4 1.1.GPT-4 模型介绍 GPT-4(Generative Pre-trained Transformer 4)是由OpenAI开发的一种大型语言模型。GPT-4是前作GPT系列模型的进一步改进,旨在提高语言理解和生成的能力,…

Centos 7安装pm2 , 操作等常用命令

Centos 7安装pm2 1、首先需要安装node&#xff0c;node安装教程前一篇已经说了&#xff0c;是安装pm2 [rootlocalhost ~]# npm install -g pm2 2、pm2 命令参考 复制代码 2.1 启动进程/应用 pm2 start bin/www 或 pm2 start app.js 2.2 重命名进程/应用 pm2 start app.js -…

Blender导出FBX给UE5

最近在学习UE5的资源导入&#xff0c;总结如下&#xff1a; 建模使用Blender&#xff0c;UE5版本是5.3 1.纯静态模型导入UE5 Blender FBX导出设置保持默认即可&#xff0c; UE5把导入设置里Miscellaneous下Force Front XAxis和Convert Scene Unit勾选即可 2.带骨骼动画的模型…