compose/azure/login/tokenStore.go

44 lines
815 B
Go

package login
import (
"encoding/json"
"io/ioutil"
"golang.org/x/oauth2"
)
type TokenStore struct {
filePath string
}
type LoginInfo struct {
Token oauth2.Token `json:"oauthToken"`
TenantID string `json:"tenantId"`
}
func NewTokenStore(filePath string) TokenStore {
return TokenStore{
filePath: filePath,
}
}
func (store TokenStore) writeLoginInfo(info LoginInfo) error {
bytes, err := json.MarshalIndent(info, "", " ")
if err != nil {
return err
}
ioutil.WriteFile(store.filePath, bytes, 0644)
return nil
}
func (store TokenStore) readToken() (loginInfo LoginInfo, err error) {
bytes, err := ioutil.ReadFile(store.filePath)
if err != nil {
return loginInfo, err
}
if err := json.Unmarshal(bytes, &loginInfo); err != nil {
return loginInfo, err
}
return loginInfo, nil
}