微信登录3-回调方式说明

时间:2024-03-08 13:50:26

一、回调方法定义

ApiWxController中添加方法

@GetMapping("callback")
public String callback(String code, String state){

    //回调被拉起,并获得code和state参数
    System.out.println("callback被调用");
    System.out.println("code = " + code);
    System.out.println("state = " + state);
    
    return null;
}

用户点击“确认登录”后,微信服务器会向谷粒学院的业务服务器发起回调,回调地址就是yml中配置的redirecturi

二、发起回调的方式

1、方式一:内网穿透

步骤:开通并启动内网穿透ngrok-->开放平台配置回调地址-->yml配置

开放平台配置:

BwQGan.png

yml配置:

wx:
  open:
    # 微信开放平台 appid
    appId: wxc606fb748aedee7c
    # 微信开放平台 appsecret
    appSecret: 073e8e1117c1054b14586c8aa922bc9c
    # 微信开放平台 重定向url(guli.shop需要在微信开放平台配置)
    redirectUri: http://imhelen.free.idcfengye.com/api/ucenter/wx/callback

注意:yml文件中redirecturi的域名必须和开放平台中应用配置的授权回调域的值完全一致,
但是开放平台上的一个应用只能配置一个回调地址,提供给一个开发者使用

2、方式二:外网服务器跳转

解决多人无法共享回调域设置的问题。

步骤:将跳转程序部署到外网服务器-->开放平台配置回调地址-->yml配置

跳转程序:部署在guli.shop上
guli.shop服务器的接口可以接收微信的回调请求,将微信回调请求转发到开发者的localhost的8160端口,并传递code和state参数

开放平台配置:
授权回调域一般设置为一个内网穿透地址,例如使用ngrok工具申请一个内网穿透地址

BwQgG6.png

yml配置:

wx:
  open:
    # 微信开放平台 appid
    appId: wxed9954c01bb89b47
    # 微信开放平台 appsecret
    appSecret: a7482517235173ddb4083788de60b90e
    # 微信开放平台 重定向url(guli.shop需要在微信开放平台配置)
    redirectUri: http://guli.shop/api/ucenter/wx/callback8160

三、测试回调跳转服务器

访问回调服务器
http://guli.shop/api/ucenter/wx/callback8160?code=1234&state=666
跳转到
http://localhost:8160/api/ucenter/wx/callback?code=1234&state=666