添加github第三方请求数据通过国外中继请求
This commit is contained in:
parent
fef039ef8d
commit
e64aa76456
|
|
@ -162,3 +162,9 @@ type OutlineServerResp struct {
|
|||
Request OnlineServerReq `json:"request" form:"request"` // 请求
|
||||
Response OnlineServerRespData `json:"response" form:"response"` // 响应
|
||||
}
|
||||
|
||||
type OutlineServerReqResp struct {
|
||||
Code int `json:"code"` // 响应码
|
||||
Message string `json:"message"` // 响应信息
|
||||
Data OutlineServerResp `json:"data"` // 响应数据
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,6 +101,57 @@ func ExchangeCodeForAccessToken(clientID, clientSecret, code, redirectURI string
|
|||
return response, nil
|
||||
}
|
||||
|
||||
func ExchangeCodeForAccessTokenGithub(clientID, clientSecret, code, redirectURI string) (proto.GitHubOAuthResponse, error) {
|
||||
request := proto.GitHubOAuthRequest{
|
||||
ClientID: clientID,
|
||||
ClientSecret: clientSecret,
|
||||
Code: code,
|
||||
RedirectURI: redirectURI,
|
||||
}
|
||||
var githubOAuthResponse proto.GitHubOAuthResponse
|
||||
|
||||
var onlineReq proto.OnlineServerReq
|
||||
onlineReq.Type = "post"
|
||||
onlineReq.Url = "https://github.com/login/oauth/access_token"
|
||||
onlineReq.Data = request
|
||||
|
||||
header := make([]proto.OutlineServerReqData, 0)
|
||||
header = append(header, proto.OutlineServerReqData{
|
||||
Key: "Content-Type",
|
||||
Value: "application/json",
|
||||
})
|
||||
header = append(header, proto.OutlineServerReqData{
|
||||
Key: "Accept",
|
||||
Value: "application/json",
|
||||
})
|
||||
superTokens := GetRedisSetMembers("super_permission_tokens")
|
||||
header = append(header, proto.OutlineServerReqData{
|
||||
Key: "token",
|
||||
Value: superTokens[0],
|
||||
})
|
||||
onlineReq.Header = header
|
||||
onlineReqBytes, _ := json.Marshal(onlineReq)
|
||||
headers := map[string]string{
|
||||
"token": superTokens[0],
|
||||
"super_id": "1",
|
||||
}
|
||||
|
||||
err, respBytes := DoPostRequestJSON("https://vis.ljsea.top/tool/online_server_request?super_id=1", onlineReqBytes, headers)
|
||||
if err != nil {
|
||||
return githubOAuthResponse, err
|
||||
}
|
||||
var onlineResp proto.OutlineServerReqResp
|
||||
err = json.Unmarshal(respBytes, &onlineResp)
|
||||
if err != nil {
|
||||
return githubOAuthResponse, err
|
||||
}
|
||||
err = json.Unmarshal([]byte(onlineResp.Data.Response.Response), &githubOAuthResponse)
|
||||
if err != nil {
|
||||
return githubOAuthResponse, err
|
||||
}
|
||||
return githubOAuthResponse, nil
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
func GetGitHubUserInfo(accessToken string) (proto.GitHubUserInfo, error) {
|
||||
|
||||
|
|
@ -122,6 +173,42 @@ func GetGitHubUserInfo(accessToken string) (proto.GitHubUserInfo, error) {
|
|||
}
|
||||
return resp, err
|
||||
}
|
||||
func GetGitHubUserInfoV2(accessToken string) (proto.GitHubUserInfo, error) {
|
||||
url := "https://api.github.com/user"
|
||||
var onlineReq proto.OnlineServerReq
|
||||
onlineReq.Type = "get"
|
||||
onlineReq.Url = url
|
||||
|
||||
header := make([]proto.OutlineServerReqData, 0)
|
||||
header = append(header, proto.OutlineServerReqData{
|
||||
Key: "Authorization",
|
||||
Value: "Bearer " + accessToken,
|
||||
})
|
||||
onlineReq.Header = header
|
||||
superTokens := GetRedisSetMembers("super_permission_tokens")
|
||||
onlineReqBytes, _ := json.Marshal(onlineReq)
|
||||
headers := map[string]string{
|
||||
"token": superTokens[0],
|
||||
"super_id": "1",
|
||||
}
|
||||
|
||||
err, respBytes := DoPostRequestJSON("https://vis.ljsea.top/tool/online_server_request?super_id=1", onlineReqBytes, headers)
|
||||
var onlineResp proto.OutlineServerReqResp
|
||||
var resp proto.GitHubUserInfo
|
||||
err = json.Unmarshal(respBytes, &onlineResp)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
err = json.Unmarshal([]byte(onlineResp.Data.Response.Response), &resp)
|
||||
//err, data := DoGetRequest(url, headers)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
if resp.UserID == 0 {
|
||||
return resp, errors.New("获取用户信息失败,请检查access_token是否正确")
|
||||
}
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// 谷歌登录授权
|
||||
const (
|
||||
|
|
|
|||
Loading…
Reference in New Issue