33 lines
542 B
Go
33 lines
542 B
Go
package auth
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
|
|
"golang.org/x/oauth2"
|
|
)
|
|
|
|
type TokenStore struct {
|
|
filePath string
|
|
}
|
|
|
|
func (ts *TokenStore) Save(token *oauth2.Token) error {
|
|
data, err := json.Marshal(token)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return os.WriteFile(ts.filePath, data, 0600)
|
|
}
|
|
|
|
func (ts *TokenStore) Load() (*oauth2.Token, error) {
|
|
data, err := os.ReadFile(ts.filePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var token oauth2.Token
|
|
if err := json.Unmarshal(data, &token); err != nil {
|
|
return nil, err
|
|
}
|
|
return &token, nil
|
|
}
|