diff --git a/services/sso/client.go b/services/sso/client.go index 5cf6d0b..ad4e03f 100644 --- a/services/sso/client.go +++ b/services/sso/client.go @@ -1,11 +1,8 @@ package sso import ( - "fmt" "golib.gaore.com/GaoreGo/haiwai-common-sdk-go/sdk" "golib.gaore.com/GaoreGo/haiwai-common-sdk-go/sdk/requests" - "net/url" - "strings" ) const ( @@ -17,8 +14,8 @@ var HOST = requests.Host{ Func: func(s string, area string) string { host := map[string]string{ requests.RELEASE: "sso.gaore.com.hk", - requests.PRE: "sso.gaore.com", - requests.TEST: "sso.gaore.com", + requests.PRE: "sso.gaore.com.hk", + requests.TEST: "sso.gaore.com.hk", } if s, ok := host[s]; ok { return s @@ -57,34 +54,6 @@ func (c *Client) SearchUser(req *SearchUserRequest) (response *SearchUserRespons return } -func (c *Client) GetLoginUrl(redirectUrl string, env ...string) string { - uri := fmt.Sprintf("/admin/main/login?ident=%s&redirectUrl=%s", c.ident, url.QueryEscape(redirectUrl)) - scheme, host := c.getSchemeAndHost(env...) - return fmt.Sprintf("%s://%s%s", scheme, host, uri) -} - -func (c *Client) GetLogout(env ...string) string { - uri := fmt.Sprintf("/admin/main/logout?ident=%s&redirectUrl=", c.ident) - scheme, host := c.getSchemeAndHost(env...) - return fmt.Sprintf("%s://%s%s", scheme, host, uri) -} - -func (c Client) getSchemeAndHost(env ...string) (scheme, host string) { - rEnv := requests.RELEASE - if len(env) >= 1 { - rEnv = env[0] - } - host = HOST.Func(rEnv, "") - - if rEnv == requests.RELEASE { - scheme = requests.HTTPS - } else { - scheme = requests.HTTP - } - scheme = strings.ToLower(scheme) - return -} - func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, err error) { client = &Client{} client.ident = source diff --git a/services/sso/client_test.go b/services/sso/client_test.go index 57aa787..e972f3f 100644 --- a/services/sso/client_test.go +++ b/services/sso/client_test.go @@ -1,13 +1,11 @@ package sso import ( - "golib.gaore.com/GaoreGo/haiwai-common-sdk-go/sdk/requests" "testing" ) func TestLoginUrl(t *testing.T) { - c, _ := NewClientWithAccessKey("stat.gaore.com.hk", "", "stat_gaore_com_hk") - t.Log(c.GetLoginUrl("http://stat.gaore.com.hk/web/user/login", requests.TEST)) + t.Log(GetLoginUrl("stat.gaore.com.hk", "http://stat.gaore.com.hk/web/user/login")) } func TestClient_CodeAuth(t *testing.T) { diff --git a/services/sso/url.go b/services/sso/url.go new file mode 100644 index 0000000..a45b2fb --- /dev/null +++ b/services/sso/url.go @@ -0,0 +1,27 @@ +package sso + +import ( + "fmt" + "golib.gaore.com/GaoreGo/haiwai-common-sdk-go/sdk/requests" + "net/url" + "strings" +) + +func GetLoginUrl(ident string, redirectUrl string, env ...string) string { + uri := fmt.Sprintf("/admin/main/login?ident=%s&redirectUrl=%s", ident, url.QueryEscape(redirectUrl)) + scheme, host := getSchemeAndHost(env...) + return fmt.Sprintf("%s://%s%s", scheme, host, uri) +} + +func GetLogout(ident string, env ...string) string { + uri := fmt.Sprintf("/admin/main/logout?ident=%s&redirectUrl=", ident) + scheme, host := getSchemeAndHost(env...) + return fmt.Sprintf("%s://%s%s", scheme, host, uri) +} + +func getSchemeAndHost(env ...string) (scheme, host string) { + env = append(env, requests.RELEASE) + host = HOST.Func(env[0], "") + scheme = strings.ToLower(requests.HTTPS) + return +}