Skip to content

Commit 999a580

Browse files
authored
Add "no-browser" flag to prevent automatically opening the browser (#121)
1 parent 653ff88 commit 999a580

File tree

5 files changed

+23
-12
lines changed

5 files changed

+23
-12
lines changed

cmd/oauth2.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func NewOAuth2Cmd(version, commit, date string) (cmd *OAuth2Cmd) {
8181
cmd.PersistentFlags().DurationVar(&cconfig.BrowserTimeout, "browser-timeout", 10*time.Minute, "browser timeout")
8282
cmd.PersistentFlags().BoolVar(&cconfig.Insecure, "insecure", false, "allow insecure connections")
8383
cmd.PersistentFlags().BoolVarP(&silent, "silent", "s", false, "silent mode")
84+
cmd.PersistentFlags().BoolVar(&cconfig.NoBrowser, "no-browser", false, "do not open browser")
8485
cmd.PersistentFlags().BoolVar(&noPrompt, "no-prompt", false, "disable prompt")
8586
cmd.PersistentFlags().BoolVar(&cconfig.DPoP, "dpop", false, "use DPoP")
8687
cmd.PersistentFlags().StringVar(&cconfig.Claims, "claims", "", "use claims")

cmd/oauth2_authorize_code.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"context"
55
"net/http"
66

7-
"github.com/cloudentity/oauth2c/internal/oauth2"
87
"github.com/cli/browser"
8+
"github.com/cloudentity/oauth2c/internal/oauth2"
99
)
1010

1111
func (c *OAuth2Cmd) AuthorizationCodeGrantFlow(clientConfig oauth2.ClientConfig, serverConfig oauth2.ServerConfig, hc *http.Client) error {
@@ -54,10 +54,13 @@ func (c *OAuth2Cmd) AuthorizationCodeGrantFlow(clientConfig oauth2.ClientConfig,
5454
LogBox("PKCE", "code_verifier = %s\ncode_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))", codeVerifier)
5555
}
5656

57-
Logfln("\nOpen the following URL:\n\n%s\n", authorizeRequest.URL.String())
57+
Logfln("\nGo to the following URL:\n\n%s\n", authorizeRequest.URL.String())
5858

59-
if err = browser.OpenURL(authorizeRequest.URL.String()); err != nil {
60-
LogError(err)
59+
if !clientConfig.NoBrowser {
60+
Logfln("Opening browser...\n")
61+
if err = browser.OpenURL(authorizeRequest.URL.String()); err != nil {
62+
LogError(err)
63+
}
6164
}
6265

6366
Logln()

cmd/oauth2_device.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"net/http"
77
"time"
88

9-
"github.com/cloudentity/oauth2c/internal/oauth2"
109
"github.com/cli/browser"
10+
"github.com/cloudentity/oauth2c/internal/oauth2"
1111
)
1212

1313
func (c *OAuth2Cmd) DeviceGrantFlow(clientConfig oauth2.ClientConfig, serverConfig oauth2.ServerConfig, hc *http.Client) error {
@@ -31,10 +31,13 @@ func (c *OAuth2Cmd) DeviceGrantFlow(clientConfig oauth2.ClientConfig, serverConf
3131

3232
LogRequestAndResponse(authorizationRequest, authorizationResponse)
3333

34-
Logfln("\nOpen the following URL:\n\n%s\n", authorizationResponse.VerificationURIComplete)
34+
Logfln("\nGo to the following URL:\n\n%s\n", authorizationResponse.VerificationURIComplete)
3535

36-
if err = browser.OpenURL(authorizationResponse.VerificationURIComplete); err != nil {
37-
LogError(err)
36+
if !clientConfig.NoBrowser {
37+
Logfln("Opening browser...\n")
38+
if err = browser.OpenURL(authorizationResponse.VerificationURIComplete); err != nil {
39+
LogError(err)
40+
}
3841
}
3942

4043
Logln()

cmd/oauth2_implicit.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package cmd
33
import (
44
"net/http"
55

6-
"github.com/cloudentity/oauth2c/internal/oauth2"
76
"github.com/cli/browser"
7+
"github.com/cloudentity/oauth2c/internal/oauth2"
88
)
99

1010
func (c *OAuth2Cmd) ImplicitGrantFlow(clientConfig oauth2.ClientConfig, serverConfig oauth2.ServerConfig, hc *http.Client) error {
@@ -25,10 +25,13 @@ func (c *OAuth2Cmd) ImplicitGrantFlow(clientConfig oauth2.ClientConfig, serverCo
2525

2626
LogRequest(authorizeRequest)
2727

28-
Logfln("\nOpen the following URL:\n\n%s\n", authorizeRequest.URL.String())
28+
Logfln("\nGo to the following URL:\n\n%s\n", authorizeRequest.URL.String())
2929

30-
if err = browser.OpenURL(authorizeRequest.URL.String()); err != nil {
31-
LogError(err)
30+
if !clientConfig.NoBrowser {
31+
Logfln("Opening browser...\n")
32+
if err = browser.OpenURL(authorizeRequest.URL.String()); err != nil {
33+
LogError(err)
34+
}
3235
}
3336

3437
Logln()

internal/oauth2/oauth2.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ type ClientConfig struct {
8888
CallbackTLSKey string `validate:"omitempty,uri|file"`
8989
HTTPTimeout time.Duration
9090
BrowserTimeout time.Duration
91+
NoBrowser bool
9192
DPoP bool
9293
Claims string `validate:"omitempty,json"`
9394
RAR string `validate:"omitempty,json"`

0 commit comments

Comments
 (0)