为什么需要微信授权?
进行微信授权之后可以获得用户的openid等信息,以便于执行接下来的支付等业务逻辑。
那么在springboot项目中应该如何实现微信授权呢?
前期准备
首先需要在微信公众平台获取测试号,测试号有两个重要的信息,appID和appsecret,这个稍后在授权中需要用到。
然后查阅微信开发文档,得知授权有如下的步骤
开发文档:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
一、用户同意授权,获取code
开发文档中提到,获取code需要引导用户打开如下链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
里面参数需要替换成自己的信息,需要注意的参数是REDIRECT_URL,这个REDIRECT_URL对应的是需要授权之后需要回调到自己后端的接口。
由于微信规定这个域名必须是已备案的域名,如果没有域名可以在natapp做内网穿透,申请一个二级域名来进行测试。
申请完域名之后在测试号功能服务处进行修改,将授权回调域名修改成自己的
访问上述链接之后,浏览器会重定向至回调接口,并携带code参数
二、通过code换取tokenAccess
第二步是通过code换取access_token,同时得到openid
下面进行编程测试
@RestController
@Slf4j
@RequestMapping("/weixin")
public class WeixinController {
@GetMapping("/auth")
public void auth(@RequestParam("code") String code){