diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 3597a7e..1fec7f8 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -4,6 +4,7 @@ + diff --git a/service/toolService.go b/service/toolService.go index be80d66..4297d19 100644 --- a/service/toolService.go +++ b/service/toolService.go @@ -548,32 +548,33 @@ func DoFaceBookCallBack(state *proto.ThirdPartyLoginState, code string) { } func DoStackoverflowCallBack(state *proto.ThirdPartyLoginState, code string) { + var thirdPartyLoginStatus proto.ThirdPartyLoginStatus + var userInfo proto.StackoverflowUserInfo + thirdPartyLoginStatus.Type = state.Platform //根据code获取Access Token tokenResp, err := worker.GetStackoverflowAccessTokenByCode(code, "https://pm.ljsea.top/tool/third_party_callback", worker.StackOverflowClientID, worker.StackOverflowClientSecret) - if tokenResp.AccessToken == "" { log.Println("get Stackoverflow access token is empty") - return - } - log.Println("get Stackoverflow access token:", tokenResp) - //获取用户信息 - userInfoResp, err := worker.GetStackoverflowUserInfo(tokenResp.AccessToken) - if err != nil { - log.Println("get Stackoverflow user info error:", err) - return - } - log.Println("get Stackoverflow user info:", userInfoResp) - var userInfo proto.StackoverflowUserInfo - if userInfoResp.Items != nil && len(userInfoResp.Items) > 0 { - userInfo = userInfoResp.Items[0] + thirdPartyLoginStatus.Status = proto.ParameterError } else { - log.Println("get Stackoverflow user info is empty") - return + log.Println("get Stackoverflow access token:", tokenResp) + //获取用户信息 + userInfoResp, err2 := worker.GetStackoverflowUserInfo(tokenResp.AccessToken) + if err2 != nil { + log.Println("get Stackoverflow user info error:", err) + thirdPartyLoginStatus.Status = proto.ParameterError + } else { + log.Println("get Stackoverflow user info:", userInfoResp) + if userInfoResp.Items != nil && len(userInfoResp.Items) > 0 { + userInfo = userInfoResp.Items[0] + thirdPartyUserInfo := proto.ThirdPartyUserInfo{UserID: strconv.Itoa(userInfo.UserID), Name: userInfo.DisplayName, Avatar: userInfo.ProfileImage, Email: ""} + HandleThirdPartyLoginStatusV2(state, &thirdPartyLoginStatus, &thirdPartyUserInfo) + } else { + log.Println("get Stackoverflow user info is empty") + thirdPartyLoginStatus.Status = proto.ParameterError + } + } } - var thirdPartyLoginStatus proto.ThirdPartyLoginStatus - thirdPartyLoginStatus.Type = state.Platform - thirdPartyUserInfo := proto.ThirdPartyUserInfo{UserID: strconv.Itoa(userInfo.UserID), Name: userInfo.DisplayName, Avatar: userInfo.ProfileImage, Email: ""} - HandleThirdPartyLoginStatusV2(state, &thirdPartyLoginStatus, &thirdPartyUserInfo) //更新redis中的第三方登录状态 thirdPartyLoginStatusStr, _ := json.Marshal(thirdPartyLoginStatus) log.Println("do handle Stackoverflow callback success, third party login status:", string(thirdPartyLoginStatusStr)) diff --git a/worker/thirdParty.go b/worker/thirdParty.go index f1f7181..bd0384f 100644 --- a/worker/thirdParty.go +++ b/worker/thirdParty.go @@ -377,7 +377,7 @@ func GetFaceBookUserInfo(accessToken string) (proto.FaceBookUserInfoResp, error) const ( StackOverflowClientID = "32093" - StackOverflowClientSecret = "cgHOI0emSLU7VB7jpAY9NQ((" + StackOverflowClientSecret = "SOvAmbfCBeei1ikqH4IwNA((" StackOverflowKey = "rl_s6vbPNPhbFbMcyWp7YbaTeg18" )