Skip to content

Commit 8c8375c

Browse files
authored
Merge pull request #282 from ninech/better-login-err
feat: improve client_credentials login error
2 parents cdd73ec + df93578 commit 8c8375c

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

auth/client_credentials.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package auth
33
import (
44
"context"
55
"encoding/json"
6+
"fmt"
67
"os"
78

89
"github.com/ninech/nctl/api"
@@ -53,7 +54,19 @@ func (a *API) Oauth2Token(ctx context.Context) (*oauth2.Token, error) {
5354
ClientSecret: a.ClientSecret,
5455
TokenURL: a.TokenURL,
5556
}
56-
return clientCredentialsCfg.Token(ctx)
57+
tok, err := clientCredentialsCfg.Token(ctx)
58+
if rerr, ok := err.(*oauth2.RetrieveError); ok && rerr.ErrorCode == "invalid_client" {
59+
redactedClientSecret := a.ClientSecret
60+
if len(a.ClientSecret) > 3 {
61+
redactedClientSecret = a.ClientSecret[:3] + "<redacted>"
62+
}
63+
return nil, fmt.Errorf(
64+
"%s: the used client ID/secret %q/%q is invalid",
65+
rerr.ErrorDescription,
66+
a.ClientID, redactedClientSecret,
67+
)
68+
}
69+
return tok, err
5770
}
5871

5972
func (a *API) UserInfo(ctx context.Context) (*api.UserInfo, error) {

0 commit comments

Comments
 (0)