diff options
| author | Petter Rasmussen | 2016-02-21 21:03:26 +0100 | 
|---|---|---|
| committer | Petter Rasmussen | 2016-02-21 21:03:26 +0100 | 
| commit | 1973512dd8edca24df4124fb3dfac4a432a0d481 (patch) | |
| tree | c61daefa5cf24eb2211ac816862697f9e0676d86 /auth | |
| parent | 701c7f1991ae765a51b0b7404d1edbb2dc523055 (diff) | |
| download | gdrive-1973512dd8edca24df4124fb3dfac4a432a0d481.tar.bz2 | |
go fmt
Diffstat (limited to 'auth')
| -rw-r--r-- | auth/file_source.go | 85 | ||||
| -rw-r--r-- | auth/oauth.go | 106 | ||||
| -rw-r--r-- | auth/util.go | 24 | 
3 files changed, 107 insertions, 108 deletions
| diff --git a/auth/file_source.go b/auth/file_source.go index 1c1150b..5200203 100644 --- a/auth/file_source.go +++ b/auth/file_source.go @@ -1,68 +1,67 @@  package auth  import ( -    "golang.org/x/oauth2" -    "encoding/json" -    "os" -    "io/ioutil" +	"encoding/json" +	"golang.org/x/oauth2" +	"io/ioutil" +	"os"  ) -  func FileSource(path string, token *oauth2.Token, conf *oauth2.Config) oauth2.TokenSource { -    return &fileSource{ -        tokenPath: path, -        tokenSource: conf.TokenSource(oauth2.NoContext, token), -    } +	return &fileSource{ +		tokenPath:   path, +		tokenSource: conf.TokenSource(oauth2.NoContext, token), +	}  }  type fileSource struct { -    tokenPath string -    tokenSource oauth2.TokenSource +	tokenPath   string +	tokenSource oauth2.TokenSource  }  func (self *fileSource) Token() (*oauth2.Token, error) { -    token, err := self.tokenSource.Token() -    if err != nil { -        return token, err -    } +	token, err := self.tokenSource.Token() +	if err != nil { +		return token, err +	} -    // Save token to file -    SaveToken(self.tokenPath, token) +	// Save token to file +	SaveToken(self.tokenPath, token) -    return token, nil +	return token, nil  }  func ReadToken(path string) (*oauth2.Token, bool, error) { -    if !fileExists(path) { -        return nil, false, nil -    } +	if !fileExists(path) { +		return nil, false, nil +	} -    content, err := ioutil.ReadFile(path) -    if err != nil { -        return nil, true, err -    } -    token := &oauth2.Token{} -    return token, true, json.Unmarshal(content, token) +	content, err := ioutil.ReadFile(path) +	if err != nil { +		return nil, true, err +	} +	token := &oauth2.Token{} +	return token, true, json.Unmarshal(content, token)  }  func SaveToken(path string, token *oauth2.Token) error { -    data, err := json.MarshalIndent(token, "", "  ") -    if err != nil { -        return err -    } +	data, err := json.MarshalIndent(token, "", "  ") +	if err != nil { +		return err +	} -    if err = mkdir(path); err != nil { -        return err -    } +	if err = mkdir(path); err != nil { +		return err +	} -    // Write to temp file first -    tmpFile := path + ".tmp" -    err = ioutil.WriteFile(tmpFile, data, 0600) -    if err != nil { -        os.Remove(tmpFile) -        return err -    } +	// Write to temp file first +	tmpFile := path + ".tmp" +	err = ioutil.WriteFile(tmpFile, data, 0600) +	if err != nil { +		os.Remove(tmpFile) +		return err +	} -    // Move file to correct path -    return os.Rename(tmpFile, path) +	// Move file to correct path +	return os.Rename(tmpFile, path)  } diff --git a/auth/oauth.go b/auth/oauth.go index 965c7cc..150642c 100644 --- a/auth/oauth.go +++ b/auth/oauth.go @@ -1,78 +1,78 @@  package auth  import ( -    "fmt" -    "time" -    "net/http" -    "golang.org/x/oauth2" +	"fmt" +	"golang.org/x/oauth2" +	"net/http" +	"time"  )  type authCodeFn func(string) func() string  func NewFileSourceClient(clientId, clientSecret, tokenFile string, authFn authCodeFn) (*http.Client, error) { -    conf := getConfig(clientId, clientSecret) +	conf := getConfig(clientId, clientSecret) -    // Read cached token -    token, exists, err := ReadToken(tokenFile) -    if err != nil { -        return nil, fmt.Errorf("Failed to read token: %s", err) -    } +	// Read cached token +	token, exists, err := ReadToken(tokenFile) +	if err != nil { +		return nil, fmt.Errorf("Failed to read token: %s", err) +	} -    // Require auth code if token file does not exist -    // or refresh token is missing -    if !exists || token.RefreshToken == "" { -        authUrl := conf.AuthCodeURL("state", oauth2.AccessTypeOffline) -        authCode := authFn(authUrl)() -        token, err = conf.Exchange(oauth2.NoContext, authCode) -        if err != nil { -            return nil, fmt.Errorf("Failed to exchange auth code for token: %s", err) -        } -    } +	// Require auth code if token file does not exist +	// or refresh token is missing +	if !exists || token.RefreshToken == "" { +		authUrl := conf.AuthCodeURL("state", oauth2.AccessTypeOffline) +		authCode := authFn(authUrl)() +		token, err = conf.Exchange(oauth2.NoContext, authCode) +		if err != nil { +			return nil, fmt.Errorf("Failed to exchange auth code for token: %s", err) +		} +	} -    return oauth2.NewClient( -        oauth2.NoContext, -        FileSource(tokenFile, token, conf), -    ), nil +	return oauth2.NewClient( +		oauth2.NoContext, +		FileSource(tokenFile, token, conf), +	), nil  }  func NewRefreshTokenClient(clientId, clientSecret, refreshToken string) *http.Client { -    conf := getConfig(clientId, clientSecret) +	conf := getConfig(clientId, clientSecret) -    token := &oauth2.Token{ -        TokenType: "Bearer", -        RefreshToken: refreshToken, -        Expiry: time.Now(), -    } +	token := &oauth2.Token{ +		TokenType:    "Bearer", +		RefreshToken: refreshToken, +		Expiry:       time.Now(), +	} -    return oauth2.NewClient( -        oauth2.NoContext, -        conf.TokenSource(oauth2.NoContext, token), -    ) +	return oauth2.NewClient( +		oauth2.NoContext, +		conf.TokenSource(oauth2.NoContext, token), +	)  }  func NewAccessTokenClient(clientId, clientSecret, accessToken string) *http.Client { -    conf := getConfig(clientId, clientSecret) +	conf := getConfig(clientId, clientSecret) -    token := &oauth2.Token{ -        TokenType: "Bearer", -        AccessToken: accessToken, -    } +	token := &oauth2.Token{ +		TokenType:   "Bearer", +		AccessToken: accessToken, +	} -    return oauth2.NewClient( -        oauth2.NoContext, -        conf.TokenSource(oauth2.NoContext, token), -    ) +	return oauth2.NewClient( +		oauth2.NoContext, +		conf.TokenSource(oauth2.NoContext, token), +	)  }  func getConfig(clientId, clientSecret string) *oauth2.Config { -    return &oauth2.Config{ -        ClientID:     clientId, -        ClientSecret: clientSecret, -        Scopes:       []string{"https://www.googleapis.com/auth/drive"}, -        RedirectURL:  "urn:ietf:wg:oauth:2.0:oob", -        Endpoint: oauth2.Endpoint{ -            AuthURL:  "https://accounts.google.com/o/oauth2/auth", -            TokenURL: "https://accounts.google.com/o/oauth2/token", -        }, -    } +	return &oauth2.Config{ +		ClientID:     clientId, +		ClientSecret: clientSecret, +		Scopes:       []string{"https://www.googleapis.com/auth/drive"}, +		RedirectURL:  "urn:ietf:wg:oauth:2.0:oob", +		Endpoint: oauth2.Endpoint{ +			AuthURL:  "https://accounts.google.com/o/oauth2/auth", +			TokenURL: "https://accounts.google.com/o/oauth2/token", +		}, +	}  } diff --git a/auth/util.go b/auth/util.go index b053c1f..dfa4adf 100644 --- a/auth/util.go +++ b/auth/util.go @@ -1,22 +1,22 @@  package auth  import ( -    "os" -    "path/filepath" +	"os" +	"path/filepath"  )  func mkdir(path string) error { -    dir := filepath.Dir(path) -    if fileExists(dir) { -        return nil -    } -    return os.Mkdir(dir, 0700) +	dir := filepath.Dir(path) +	if fileExists(dir) { +		return nil +	} +	return os.Mkdir(dir, 0700)  }  func fileExists(path string) bool { -    _, err := os.Stat(path) -    if err == nil { -        return true -    } -    return false +	_, err := os.Stat(path) +	if err == nil { +		return true +	} +	return false  } | 
