微信网页项目,授权微信并获取用户个人信息
准备工作
一、注册公众号
https://mp.weixin.qq.com/ 这里我们使用的个人用户,使用公众平台测试账号进行开发。(注:实际企业开发项目中,需要认证企业并使用实际公众号开发)
二、设置相关内容
1、进入公众平台测试账号页面,如图所示
2、牢记appID以及appsecret数据,是发起请求接口的重要参数
3、JS接口安全域名修改,这里是本地测试,所以直接填本地前端的地址,比如192.168.3.28:8080(查看本机ip地址:win+R 输入cmd 回车 打开控制台窗口,输入ipconfig查看本机ip地址)
4、页面下拉查看网页授权获取用户基本信息,点击修改,本地测试的话,和上面JS接口安全域名填写一致就可以
开始开发
一、查看开发文档
确定基本步骤:
- 引导用户进入授权页面同意授权,获取code
- 通过code换取网页授权access_token(与基础支持中的access_token不同)
- 如果需要,开发者可以刷新网页授权access_token,避免过期
- 通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
1、用户打开微信链接,微信客户端会自动跳转到回掉地址并且地址栏会携带code参数
2、开发者需要获取code并使用code请求接口,获取access_token信息,access_token参数尽量存在服务器中,该参数存在有效时长,超时需要重新授权
3、通过access_token获取用户基本信息
二、代码实现
1、后端
UserController.java
private String appid = "*******************";
private String secret = "*******************";
@GetMapping("/get_access_token") //获取access_token
public Map<String, Object> get_access_token(@RequestParam String code) throws IOException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
Map<String, Object> map = new HashMap<>();
HttpGet httpGet = new HttpGet("https://api.weixin.qq.com/sns/oauth2/access_token?appid="