Skip to content

Commit 5259c14

Browse files
authored
fix: Update OAuth authentication URL host to www domain (#13)
1 parent 11728dd commit 5259c14

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

auth.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ type OAuthClient struct {
147147
clientID string
148148
clientSecret string
149149
baseURL string
150+
wwwURL string
150151
hostName string
151152
}
152153

@@ -158,6 +159,7 @@ const (
158159

159160
type oauthOption struct {
160161
baseURL string
162+
wwwURL string
161163
httpClient HTTPClient
162164
}
163165

@@ -170,6 +172,13 @@ func WithAuthBaseURL(baseURL string) OAuthClientOption {
170172
}
171173
}
172174

175+
// WithAuthWWWURL adds base URL
176+
func WithAuthWWWURL(wwwURL string) OAuthClientOption {
177+
return func(opt *oauthOption) {
178+
opt.wwwURL = wwwURL
179+
}
180+
}
181+
173182
func WithAuthHttpClient(client HTTPClient) OAuthClientOption {
174183
return func(opt *oauthOption) {
175184
opt.httpClient = client
@@ -203,10 +212,15 @@ func newOAuthClient(clientID, clientSecret string, opts ...OAuthClientOption) (*
203212
httpClient = http.DefaultClient
204213
}
205214

215+
if initSettings.wwwURL == "" {
216+
initSettings.wwwURL = strings.Replace(initSettings.baseURL, "api.", "www.", 1)
217+
}
218+
206219
return &OAuthClient{
207220
clientID: clientID,
208221
clientSecret: clientSecret,
209222
baseURL: initSettings.baseURL,
223+
wwwURL: initSettings.wwwURL,
210224
hostName: hostName,
211225
core: newCore(httpClient, initSettings.baseURL),
212226
}, nil
@@ -230,7 +244,7 @@ func (c *OAuthClient) getOAuthURL(redirectURI, state string, opts ...urlOption)
230244
opt(&params)
231245
}
232246

233-
uri := c.baseURL + "/api/permission/oauth2/authorize"
247+
uri := c.wwwURL + "/api/permission/oauth2/authorize"
234248
return uri + "?" + params.Encode()
235249
}
236250

@@ -252,7 +266,7 @@ func (c *OAuthClient) getWorkspaceOAuthURL(redirectURI, state, workspaceID strin
252266
opt(&params)
253267
}
254268

255-
uri := fmt.Sprintf("%s/api/permission/oauth2/workspace_id/%s/authorize", c.baseURL, workspaceID)
269+
uri := fmt.Sprintf("%s/api/permission/oauth2/workspace_id/%s/authorize", c.wwwURL, workspaceID)
256270
return uri + "?" + params.Encode()
257271
}
258272

auth_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func TestPKCEOAuthClient(t *testing.T) {
5858

5959
require.NoError(t, err)
6060
assert.NotEmpty(t, resp.CodeVerifier)
61-
assert.Contains(t, resp.AuthorizationURL, "https://api.coze.com/api/permission/oauth2/authorize")
61+
assert.Contains(t, resp.AuthorizationURL, "https://www.coze.com/api/permission/oauth2/authorize")
6262
assert.Contains(t, resp.AuthorizationURL, "client_id=test_client_id")
6363
assert.Contains(t, resp.AuthorizationURL, "redirect_uri=https%3A%2F%2Fexample.com%2Fcallback")
6464
assert.Contains(t, resp.AuthorizationURL, "state=test_state")
@@ -78,7 +78,7 @@ func TestPKCEOAuthClient(t *testing.T) {
7878

7979
require.NoError(t, err)
8080
assert.NotEmpty(t, resp.CodeVerifier)
81-
assert.Contains(t, resp.AuthorizationURL, "https://api.coze.com/api/permission/oauth2/workspace_id/workspace_id/authorize")
81+
assert.Contains(t, resp.AuthorizationURL, "https://www.coze.com/api/permission/oauth2/workspace_id/workspace_id/authorize")
8282
assert.Contains(t, resp.AuthorizationURL, "client_id=test_client_id")
8383
assert.Contains(t, resp.AuthorizationURL, "redirect_uri=https%3A%2F%2Fexample.com%2Fcallback")
8484
assert.Contains(t, resp.AuthorizationURL, "state=test_state")
@@ -117,7 +117,7 @@ func TestDeviceOAuthClient(t *testing.T) {
117117
expectedResp := &GetDeviceAuthResp{
118118
DeviceCode: "test_device_code",
119119
UserCode: "test_user_code",
120-
VerificationURI: "https://api.coze.com/verify",
120+
VerificationURI: "https://www.coze.com/verify",
121121
ExpiresIn: 1800,
122122
Interval: 5,
123123
}
@@ -134,8 +134,8 @@ func TestDeviceOAuthClient(t *testing.T) {
134134
require.NoError(t, err)
135135
assert.Equal(t, "test_device_code", resp.DeviceCode)
136136
assert.Equal(t, "test_user_code", resp.UserCode)
137-
assert.Equal(t, "https://api.coze.com/verify", resp.VerificationURI)
138-
assert.Equal(t, "https://api.coze.com/verify?user_code=test_user_code", resp.VerificationURL)
137+
assert.Equal(t, "https://www.coze.com/verify", resp.VerificationURI)
138+
assert.Equal(t, "https://www.coze.com/verify?user_code=test_user_code", resp.VerificationURL)
139139
})
140140

141141
t.Run("GetAccessToken with polling", func(t *testing.T) {
@@ -248,7 +248,7 @@ func TestWebOAuthClient(t *testing.T) {
248248
RedirectURI: "https://example.com/callback",
249249
State: "test_state",
250250
})
251-
assert.Contains(t, url, "https://api.coze.com/api/permission/oauth2/authorize")
251+
assert.Contains(t, url, "https://www.coze.com/api/permission/oauth2/authorize")
252252
assert.Contains(t, url, "client_id=test_client_id")
253253
assert.Contains(t, url, "redirect_uri=https%3A%2F%2Fexample.com%2Fcallback")
254254
assert.Contains(t, url, "state=test_state")

0 commit comments

Comments
 (0)