OauthController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.sxtvs.open.api.odata.controller;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.sxtvs.open.api.odata.service.*;
  4. import com.sxtvs.open.core.sls.AliyunLogger;
  5. import jakarta.servlet.http.HttpServletRequest;
  6. import org.apache.commons.io.IOUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestParam;
  12. import java.io.IOException;
  13. import java.util.Map;
  14. @Controller
  15. @RequestMapping("oauth")
  16. public class OauthController {
  17. @Autowired
  18. private OauthService oauthService;
  19. @Autowired
  20. private AliyunLogger logger;
  21. @Autowired
  22. private DouyinAccountService douyinAccountService;
  23. @RequestMapping("douyin/callback")
  24. public String douyinCallback(String code, String state) {
  25. var token = oauthService.loadStateMapping(state);
  26. logger.info("key", "oauth/douyin/callback", "code", code, "state", state, "token", token);
  27. // todo 用户数据入库
  28. douyinAccountService.upsert(code);
  29. return "redirect:https://cxzx.smcic.net/mediaAll/index.html#/main_home/convergence";
  30. }
  31. @Autowired
  32. private KuaishouAccountService kuaishouAccountService;
  33. @RequestMapping("kuaishou/callback")
  34. public String kuaishouCallback(String code, String state) {
  35. var token = oauthService.loadStateMapping(state);
  36. logger.info("key", "oauth/kuaishou/callback", "code", code, "state", state, "token", token);
  37. // todo 用户数据入库
  38. kuaishouAccountService.upsert(code);
  39. return "redirect:https://open.sxtvs.net/login.html?platform=kuaishou";
  40. }
  41. @Autowired
  42. private ToutiaoAccountService toutiaoAccountService;
  43. @RequestMapping("toutiao/callback")
  44. public String toutiaoCallback(String code, String state) {
  45. var token = oauthService.loadStateMapping(state);
  46. logger.info("key", "oauth/toutiao/callback", "code", code, "state", state, "token", token);
  47. // todo 用户数据入库
  48. toutiaoAccountService.upsert(code);
  49. return "redirect:https://open.sxtvs.net/login.html?platform=toutiao";
  50. }
  51. @Autowired
  52. private WeiboAccountService weiboAccountService;
  53. @RequestMapping("weibo/callback")
  54. public String weiboCallback(String code, String state) {
  55. logger.info("key", "oauth/weibo/callback", "code", code);
  56. // todo 用户数据入库
  57. weiboAccountService.upsert(code);
  58. return "redirect:https://open.sxtvs.net";
  59. }
  60. @Autowired
  61. private BilibiliAccountService bilibiliAccountService;
  62. @RequestMapping("bilibili/callback")
  63. public String bilibiliCallback(String code, String state) {
  64. var token = oauthService.loadStateMapping(state);
  65. logger.info("key", "oauth/bilibili/callback", "code", code, "state", state, "token", token);
  66. // todo 用户数据入库
  67. bilibiliAccountService.upsert(code);
  68. return "redirect:https://open.sxtvs.net/login.html?platform=bilibili";
  69. }
  70. @Autowired
  71. private WxRestService wxRestService;
  72. @RequestMapping("weixin/{appid}/callback")
  73. public String callback(
  74. @RequestParam("auth_code") String authCode,
  75. @RequestParam("expires_in") Integer expiresIn,
  76. @PathVariable("appid") String appid, HttpServletRequest request) {
  77. logger.info("key", "oauth/{appid}/callback", "data",
  78. Map.of("authCode", authCode, "expiresIn", expiresIn, "appid", appid));
  79. if (StrUtil.isBlank(authCode)) {
  80. try {
  81. String body = IOUtils.toString(request.getReader());
  82. logger.error("wxdca527f24b99b4c0/callback error body {}", body);
  83. } catch (IOException e) {
  84. e.printStackTrace();
  85. }
  86. }
  87. // todo 用户数据入库
  88. wxRestService.apiQueryAuth(authCode);
  89. return "redirect:https://open.sxtvs.net/login.html?platform=weixin";
  90. }
  91. }