Support defaultHttpClient.

This commit is contained in:
Yang Luo
2021-08-01 14:48:29 +08:00
parent 629ae5a54b
commit 1a2d85102c
4 changed files with 21 additions and 7 deletions

View File

@ -100,6 +100,14 @@ func (c *ApiController) GetApplicationLogin() {
c.ServeJSON()
}
func setHttpClient(idProvider idp.IdProvider, providerType string) {
if providerType == "GitHub" || providerType == "Google" || providerType == "Facebook" || providerType == "LinkedIn" {
idProvider.SetHttpClient(proxyHttpClient)
} else {
idProvider.SetHttpClient(defaultHttpClient)
}
}
// @Title Login
// @Description login
// @Param oAuthParams query string true "oAuth parameters"
@ -213,7 +221,7 @@ func (c *ApiController) Login() {
return
}
idProvider.SetHttpClient(httpClient)
setHttpClient(idProvider, provider.Type)
if form.State != beego.AppConfig.String("authState") && form.State != application.Name {
resp = &Response{Status: "error", Msg: fmt.Sprintf("state expected: \"%s\", but got: \"%s\"", beego.AppConfig.String("authState"), form.State)}

View File

@ -21,12 +21,17 @@ import (
"golang.org/x/net/proxy"
)
var httpClient *http.Client
var defaultHttpClient *http.Client
var proxyHttpClient *http.Client
func InitHttpClient() {
// not use proxy
defaultHttpClient = http.DefaultClient
// use proxy
httpProxy := beego.AppConfig.String("httpProxy")
if httpProxy == "" {
httpClient = &http.Client{}
proxyHttpClient = &http.Client{}
return
}
@ -37,11 +42,11 @@ func InitHttpClient() {
}
tr := &http.Transport{Dial: dialer.Dial}
httpClient = &http.Client{
proxyHttpClient = &http.Client{
Transport: tr,
}
//resp, err2 := httpClient.Get("https://google.com")
//resp, err2 := proxyHttpClient.Get("https://google.com")
//if err2 != nil {
// panic(err2)
//}