mirror of
https://github.com/fumiama/terasu-cloudflared.git
synced 2026-06-05 00:50:24 +08:00
AUTH-7260: Add support for login interstitial auto closure
Adds a switch `--auto-close` which automatically closes Access login interstitial windows/tabs immediately after the user chooses Approve or Deny.
This commit is contained in:
@@ -104,6 +104,10 @@ func Commands() []*cli.Command {
|
||||
Name: "no-verbose",
|
||||
Usage: "print only the jwt to stdout",
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "auto-close",
|
||||
Usage: "automatically close the auth interstitial after action",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: appURLFlag,
|
||||
},
|
||||
@@ -322,7 +326,7 @@ func curl(c *cli.Context) error {
|
||||
log.Info().Msg("You don't have an Access token set. Please run access token <access application> to fetch one.")
|
||||
return run("curl", cmdArgs...)
|
||||
}
|
||||
tok, err = token.FetchToken(appURL, appInfo, log)
|
||||
tok, err = token.FetchToken(appURL, appInfo, c.Bool(cfdflags.AutoCloseInterstitial), log)
|
||||
if err != nil {
|
||||
log.Err(err).Msg("Failed to refresh token")
|
||||
return err
|
||||
@@ -442,7 +446,7 @@ func sshGen(c *cli.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cfdToken, err := token.FetchTokenWithRedirect(fetchTokenURL, appInfo, log)
|
||||
cfdToken, err := token.FetchTokenWithRedirect(fetchTokenURL, appInfo, c.Bool(cfdflags.AutoCloseInterstitial), log)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -542,7 +546,7 @@ func verifyTokenAtEdge(appUrl *url.URL, appInfo *token.AppInfo, c *cli.Context,
|
||||
if c.IsSet(sshTokenSecretFlag) {
|
||||
headers.Add(cfAccessClientSecretHeader, c.String(sshTokenSecretFlag))
|
||||
}
|
||||
options := &carrier.StartOptions{AppInfo: appInfo, OriginURL: appUrl.String(), Headers: headers}
|
||||
options := &carrier.StartOptions{AppInfo: appInfo, OriginURL: appUrl.String(), Headers: headers, AutoCloseInterstitial: c.Bool(cfdflags.AutoCloseInterstitial)}
|
||||
|
||||
if valid, err := isTokenValid(options, log); err != nil {
|
||||
return err
|
||||
|
||||
@@ -163,4 +163,7 @@ const (
|
||||
|
||||
// Management hostname to signify incoming management requests
|
||||
ManagementHostname = "management-hostname"
|
||||
|
||||
// Automatically close the login interstitial browser window after the user makes a decision.
|
||||
AutoCloseInterstitial = "auto-close"
|
||||
)
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/urfave/cli/v2"
|
||||
|
||||
"github.com/cloudflare/cloudflared/cmd/cloudflared/cliutil"
|
||||
cfdflags "github.com/cloudflare/cloudflared/cmd/cloudflared/flags"
|
||||
"github.com/cloudflare/cloudflared/config"
|
||||
"github.com/cloudflare/cloudflared/credentials"
|
||||
"github.com/cloudflare/cloudflared/logger"
|
||||
@@ -97,6 +98,7 @@ func login(c *cli.Context) error {
|
||||
callbackStoreURL,
|
||||
false,
|
||||
false,
|
||||
c.Bool(cfdflags.AutoCloseInterstitial),
|
||||
log,
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user