基于Springboot微信公众号网页OAuth2.0授权

在这里介绍微信公众号网页授权,用的是自己的项目,前端是vue+移动端UI组件布局的H5页面。在下面先贴上微信开发文档的链接。关于一些内容可以先阅读文档里面说明

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

一、首先说文档里面有两种网页授权的类型

1.1  snsapi_base (网页直接跳转到授权的第三方页面,第三方页面就可以获取用户的openid)

1.2  snsapi_userinfo (跳转到一个授权页面,用户必须点击同意授权,第三方页面才可以获取用户openid和更多的东西)

本人使用的是第二种

二、项目准备材料

2.1  购买服务器(本人采用aliyun,部署好ngixn,tomcat,mysql等)

2.2  购买域名(用的top域名,需要备案)

2.3 微信公众号(APPID和AppSecret,可以选择申请接口测试账号)

步骤一,点击下方链接跳转,扫码就可申请

https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

图1

步骤二扫码登录

图2

步骤三获取appid和appsecret,填写域名和token

域名:就是你后台服务器的url,监听80端口

token:自己随便填写的token验证码

JS 接口域名    备案的域名或其它穿透网(设置完就可以网页回调域名)

用途:通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。 无需以"http://"开头,直接写域名就可以,例如 "www.xxx.top"

图3

三、项目实现开始(本人采用的认证的为微信公众号)

3.1 设置回调授权页面

步骤一、点击公众号平台左边最下方,点击公众号设置

图4

步骤二、点击功能设置

图5

步骤三、点击设置,填写域名,下载文本


图6

步骤四、通过aliyun部署好的tomcat,把txt文件通过xftp放在tomcat webapp/ROOT下

图7

步骤五、开启tomcat,通过域名的访问访问次文件

图8

步骤六、访问成功出现结果,就可以点击确认,假如不能点击确认,可能是访问结果没出的原因

四、前端页面的回调地址(采用的是vue)

4.1 先在config/下的index.js/bulid下

声明域名和后端接口回调地址

图9

4.2 在export default 下引入config的index.js 

图10

4.3  再来创建create()和methods里的方法

create():进入页面时就开始初始化此方法

methods: 用来判断openid是否存在

图11

4.4 获取本地Cookies openid

图12

五、后端接口(采用springboot整合ssm)

5.1 pom 引入依赖 公众号(包括订阅号和服务号)

<dependency>

<groupId>com.github.binarywang</groupId>

<artifactId>weixin-java-mp</artifactId>

<version>3.4.0</version>

</dependency>

5.2 yml 写好公众号配置信息

图13

5.3  封装一个微信账号实体类

图14

@Data   lomback注解   直接可以GET和SET

@ConfigurationProperties   yml   wechat的匹配

5.4  微信公众号配置类,set相关账号和密钥

图15

5.5 写一个WeChatController,里面有两个@GetMapping

@GetMapping    根GET方法一样

第一个@GETMapping,用来生成随机code

图16

第二@GETMapping,通过openid换取用户信息

图17

六、项目开始测试准备

6.1 将vue打包好的项目通过nginx转发为域名访问

图18

6.2 将后端项目打包成jar

maven 命令  : mvn clean package

项目/项目目录下

xxxxx/xxx/  mvn clean package

并将项目开启   java -jar 项目名.jar

7. 开始实现用户授权(采用微信开发工具)

7.1 将打包好的项目用域名访问


图19

7.2 访问域名后会跳转到授权页面,点击授权后就会用获取用户信息

图20

7.3 cookies 上存有openid

图21

7.4后端服务日志获取用户信息打印

图22



注:该文章主要为个人学习内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容