Przeglądaj źródła

fix google国内登陆

zwhui 3 lat temu
rodzic
commit
c602a872b8

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/response/GoogleLoginRep.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.response;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @author zwhui
+ * @date 2023/8/22 15:27
+ */
+@Data
+@Accessors(chain = true)
+public class GoogleLoginRep implements Serializable {
+    private String email;
+
+    private String subject;
+}

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/user/AuthorizationController.java

@@ -17,6 +17,7 @@ import com.cyksj.model.entity.PhoneCode;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.request.EmailFeedBackReq;
 import com.cyksj.model.request.LoginReq;
+import com.cyksj.model.response.GoogleLoginRep;
 import com.cyksj.model.response.UserAuthLoginResp;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.mail.MailService;
@@ -184,4 +185,14 @@ public class AuthorizationController {
         UserAuthLoginResp loginPhoneRep = new UserAuthLoginResp(StpUserUtil.getTokenValue(), user.getShowId(), user.getNickname(), user.getHeadimgurl());
         return GatewayResponse.SUCCESS.newBuilder().toResult(loginPhoneRep);
     }
+
+    @PostMapping("/google/login/inner")
+    public Result<GoogleLoginRep> google(String credential) throws Exception{
+        log.info("google credential:{}",credential);
+        GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance()).setAcceptableTimeSkewSeconds(30000L).setAudience(Collections.singletonList(clientId)).build();
+        GoogleIdToken idToken = verifier.verify(credential);
+        GoogleIdToken.Payload payload = idToken.getPayload();
+        log.info("google result:{}",payload);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(new GoogleLoginRep().setEmail(payload.getEmail()).setSubject(payload.getSubject()));
+    }
 }