在这里介绍微信公众号网页授权,用的是自己的项目,前端是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
步骤二扫码登录
步骤三获取appid和appsecret,填写域名和token
域名:就是你后台服务器的url,监听80端口
token:自己随便填写的token验证码
JS 接口域名 备案的域名或其它穿透网(设置完就可以网页回调域名)
用途:通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。 无需以"http://"开头,直接写域名就可以,例如 "www.xxx.top"
三、项目实现开始(本人采用的认证的为微信公众号)
3.1 设置回调授权页面
步骤一、点击公众号平台左边最下方,点击公众号设置
步骤二、点击功能设置
步骤三、点击设置,填写域名,下载文本
步骤四、通过aliyun部署好的tomcat,把txt文件通过xftp放在tomcat webapp/ROOT下
步骤五、开启tomcat,通过域名的访问访问次文件
步骤六、访问成功出现结果,就可以点击确认,假如不能点击确认,可能是访问结果没出的原因
四、前端页面的回调地址(采用的是vue)
4.1 先在config/下的index.js/bulid下
声明域名和后端接口回调地址
4.2 在export default 下引入config的index.js
4.3 再来创建create()和methods里的方法
create():进入页面时就开始初始化此方法
methods: 用来判断openid是否存在
4.4 获取本地Cookies openid
五、后端接口(采用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 写好公众号配置信息
5.3 封装一个微信账号实体类
@Data lomback注解 直接可以GET和SET
@ConfigurationProperties yml wechat的匹配
5.4 微信公众号配置类,set相关账号和密钥
5.5 写一个WeChatController,里面有两个@GetMapping
@GetMapping 根GET方法一样
第一个@GETMapping,用来生成随机code
第二@GETMapping,通过openid换取用户信息
六、项目开始测试准备
6.1 将vue打包好的项目通过nginx转发为域名访问
6.2 将后端项目打包成jar
maven 命令 : mvn clean package
项目/项目目录下
xxxxx/xxx/ mvn clean package
并将项目开启 java -jar 项目名.jar
7. 开始实现用户授权(采用微信开发工具)
7.1 将打包好的项目用域名访问
7.2 访问域名后会跳转到授权页面,点击授权后就会用获取用户信息
7.3 cookies 上存有openid
7.4后端服务日志获取用户信息打印
注:该文章主要为个人学习内容