zyx 2 years ago
parent
commit
443d00ce26

+ 10 - 4
src/main/java/com/sxtvs/open/api/odata/controller/OauthController.java

@@ -109,7 +109,8 @@ public class OauthController {
     @LoginRequired
     public String bilibiliQrCode() {
         var state = IdUtil.nanoId();
-        logger.info("key", "oauth/bilibili/code", "state", state);
+        var token = HttpContextUtil.mustToken();
+        logger.info("key", "oauth/bilibili/code", "state", state, "token", token);
         return "redirect:https://passport.bilibili.com/register/pc_oauth2.html#/?client_id=e79e6fdef9d446d7" +
                 "&return_url=https%3A%2F%2Fimport.smcic.net%2Fbilibili%2Fcallback-open&response_type=code&state=" + state;
     }
@@ -125,12 +126,17 @@ public class OauthController {
     @RequestMapping("weixin/code")
     @LoginRequired
     public ModelAndView weixinQrCode() {
-        logger.info("key", "oauth/weixin/code");
+        var token = HttpContextUtil.mustToken();
+        logger.info("key", "oauth/weixin/code", "token", token);
         WxApiCreatePreAuthCodeResponse preAuthCodeResponse = oauthService.createPreAuthCodeResponse();
+
+        // 这里使用预授权码跟用户token做一个映射
+        var preAuthCode = preAuthCodeResponse.getPreAuthCode();
+        oauthService.saveStateMapping(token, preAuthCode);
+
         ModelAndView view = new ModelAndView();
         view.setViewName("weixin-code");
-        // 这里使用预授权码跟用户token做一个映射
-        view.addObject("pre_auth_code", preAuthCodeResponse.getPreAuthCode());
+        view.addObject("pre_auth_code", preAuthCode);
         return view;
     }