Browse Source

小程序登录

Althars123 2 years ago
parent
commit
3b3ee5e090

+ 47 - 0
sdjk-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -23,7 +23,9 @@ import com.miaxis.system.dto.system.UserInfoDTO;
 import com.miaxis.system.service.ISysMenuService;
 import com.miaxis.system.service.ISysMenuService;
 import com.miaxis.wx.dto.DyTokenDTO;
 import com.miaxis.wx.dto.DyTokenDTO;
 import com.miaxis.wx.dto.DyUserInfoDTO;
 import com.miaxis.wx.dto.DyUserInfoDTO;
+import com.miaxis.wx.dto.ToutiaoTokenDTO;
 import com.miaxis.wx.service.DyService;
 import com.miaxis.wx.service.DyService;
+import com.miaxis.wx.service.ToutiaoService;
 import com.miaxis.wx.service.WxService;
 import com.miaxis.wx.service.WxService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
@@ -72,6 +74,10 @@ public class SysLoginController
     @Autowired
     @Autowired
     private DyService dyService;
     private DyService dyService;
 
 
+    @Autowired
+    private ToutiaoService toutiaoService;
+
+
     private static Logger logger = LoggerFactory.getLogger(SysLoginController.class);
     private static Logger logger = LoggerFactory.getLogger(SysLoginController.class);
 
 
 
 
@@ -89,6 +95,12 @@ public class SysLoginController
     @Value("${dy.appSecret}")
     @Value("${dy.appSecret}")
     private String dyappSecret;
     private String dyappSecret;
 
 
+    @Value("${tt.appId}")
+    private String ttappid;
+
+    @Value("${tt.appSecret}")
+    private String ttappSecret;
+
 
 
 
 
 
 
@@ -153,6 +165,41 @@ public class SysLoginController
 
 
 
 
 
 
+    }
+
+    /**
+     * 用户 openid登录
+     *
+     */
+    @PostMapping("/login/ttcode")
+    @ApiOperation("字节小程序授权码模式登录")
+    public Response<TokenDTO> loginByTtAuthorizationCode(String authorizationCode ){
+        ToutiaoTokenDTO toutiaoTokenDTO  = new ToutiaoTokenDTO();
+        toutiaoTokenDTO.setCode(authorizationCode);
+        toutiaoTokenDTO.setAppid(ttappid);
+        toutiaoTokenDTO.setSecret(ttappSecret);
+        String ttResultStr = toutiaoService.getTtUserInfo(toutiaoTokenDTO);
+        logger.info("字节小程序授权码登录返回值:"+ttResultStr);
+        TtResult ttResult = JSONObject.parseObject(ttResultStr,TtResult.class);
+
+        // 生成令牌
+        if (ttResult.getErr_no() != null){
+            throw new CustomException("抖音授权登录无效,错误原因:"+ttResult.getErr_tips());
+        }
+
+
+        ServletUtils.getRequest().setAttribute("third","douyin");
+        ServletUtils.getRequest().setAttribute("headImage","");
+        ServletUtils.getRequest().setAttribute("nickName","");
+
+        String token = loginService.login(ttResult.getOpenid(),null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
+        TokenDTO tokenDTO = new TokenDTO();
+        tokenDTO.setToken(token);
+        tokenDTO.setThirdResult(ttResult);
+        return Response.success(tokenDTO) ;
+
+
+
     }
     }
 
 
     /**
     /**

+ 6 - 0
sdjk-admin/src/main/resources/application-dev.yml

@@ -90,6 +90,12 @@ dy:
     appId: awbewr7xlianfnew
     appId: awbewr7xlianfnew
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
 
 
+# 字节小程序
+tt:
+    appId: tta896de2b37a8562901
+    appSecret: d00d88459e539cc086e035d8376810f2506ad064
+
+
 
 
 # 微信支付
 # 微信支付
 wxpay:
 wxpay:

+ 4 - 0
sdjk-admin/src/main/resources/application-prod.yml

@@ -88,6 +88,10 @@ app:
 dy:
 dy:
     appId: awbewr7xlianfnew
     appId: awbewr7xlianfnew
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
+# 字节小程序
+tt:
+    appId: tta896de2b37a8562901
+    appSecret: d00d88459e539cc086e035d8376810f2506ad064
 # 微信支付
 # 微信支付
 wxpay:
 wxpay:
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app

+ 4 - 0
sdjk-admin/src/main/resources/application-prodtest.yml

@@ -89,6 +89,10 @@ app:
 dy:
 dy:
     appId: awbewr7xlianfnew
     appId: awbewr7xlianfnew
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
     appSecret: dd979dc2a5ddcc0c761fcbe899d87ba1
+# 字节小程序
+tt:
+    appId: tta896de2b37a8562901
+    appSecret: d00d88459e539cc086e035d8376810f2506ad064
 # 微信支付
 # 微信支付
 wxpay:
 wxpay:
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app

+ 15 - 0
sdjk-common/src/main/java/com/miaxis/common/core/domain/model/TtResult.java

@@ -0,0 +1,15 @@
+package com.miaxis.common.core.domain.model;
+
+
+import lombok.Data;
+
+@Data
+public class TtResult {
+     String session_key;
+     String openid;
+     String anonymous_openid;
+     String unionid;
+     String err_no;
+     String err_tips;
+
+}

+ 11 - 0
sdjk-service/src/main/java/com/miaxis/wx/dto/ToutiaoTokenDTO.java

@@ -0,0 +1,11 @@
+package com.miaxis.wx.dto;
+
+import lombok.Data;
+
+@Data
+public class ToutiaoTokenDTO {
+    String appid;
+    String secret;
+    String code;
+    String anonymous_code;
+}

+ 39 - 0
sdjk-service/src/main/java/com/miaxis/wx/service/ToutiaoService.java

@@ -0,0 +1,39 @@
+package com.miaxis.wx.service;
+
+
+import com.miaxis.common.config.FeignConfig;
+import com.miaxis.wx.dto.DyTokenDTO;
+import com.miaxis.wx.dto.DyUserInfoDTO;
+import com.miaxis.wx.dto.ToutiaoTokenDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ *
+ * 头条
+ */
+@FeignClient(name="ttService",
+        url = "https://developer.toutiao.com",configuration = FeignConfig.class)
+@Component
+public interface ToutiaoService {
+    /**
+     *  获取openid
+     * @return
+     */
+    @PostMapping(value = "/api/apps/v2/jscode2session")
+    String getTtUserInfo(@RequestBody ToutiaoTokenDTO toutiaoTokenDTO);
+
+
+
+//    /**
+//     * 获取用户信息
+//     */
+//    @PostMapping(value = "/oauth/userinfo")
+//    String getUserInfo(
+//            @RequestBody DyUserInfoDTO dyUserInfoDTO
+//    );
+
+
+}