save token in gdrive local config path (#170)

This commit is contained in:
Andrea Spacca 2018-10-26 23:28:47 +02:00 committed by GitHub
parent 60c1c1a116
commit 84ee48d8b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View file

@ -141,7 +141,7 @@ If you want to use TLS using your own certificates, set tls-listener to :443, fo
Make sure your GOPATH is set correctly.
```bash
go run main.go -provider=local --listener :8080 --temp-path=/tmp/ --basedir=/tmp/
go run main.go --provider=local --listener :8080 --temp-path=/tmp/ --basedir=/tmp/
```
## Build

View file

@ -334,7 +334,7 @@ func NewGDriveStorage(clientJsonFilepath string, localConfigPath string, basedir
return nil, err
}
srv, err := drive.New(getGDriveClient(config))
srv, err := drive.New(getGDriveClient(config, localConfigPath))
if err != nil {
return nil, err
}
@ -349,6 +349,7 @@ func NewGDriveStorage(clientJsonFilepath string, localConfigPath string, basedir
}
const GDriveRootConfigFile = "root_id.conf"
const GDriveTokenJsonFile = "token.json"
const GDriveDirectoryMimeType = "application/vnd.google-apps.folder"
func (s *GDrive) setupRoot() error {
@ -569,13 +570,14 @@ func (s *GDrive) Put(token string, filename string, reader io.Reader, contentTyp
}
// Retrieve a token, saves the token, then returns the generated client.
func getGDriveClient(config *oauth2.Config) *http.Client {
tokenFile := "token.json"
func getGDriveClient(config *oauth2.Config, localConfigPath string) *http.Client {
tokenFile := filepath.Join(localConfigPath, GDriveTokenJsonFile)
tok, err := gDriveTokenFromFile(tokenFile)
if err != nil {
tok = getGDriveTokenFromWeb(config)
saveGDriveToken(tokenFile, tok)
}
return config.Client(context.Background(), tok)
}
@ -590,7 +592,7 @@ func getGDriveTokenFromWeb(config *oauth2.Config) *oauth2.Token {
log.Fatalf("Unable to read authorization code %v", err)
}
tok, err := config.Exchange(oauth2.NoContext, authCode)
tok, err := config.Exchange(context.TODO(), authCode)
if err != nil {
log.Fatalf("Unable to retrieve token from web %v", err)
}