compose/azure/login/tokenStore.go

38 lines
752 B
Go

package login
import (
"encoding/json"
"io/ioutil"
"golang.org/x/oauth2"
)
type tokenStore struct {
filePath string
}
// TokenInfo data stored in tokenStore
type TokenInfo struct {
Token oauth2.Token `json:"oauthToken"`
TenantID string `json:"tenantId"`
}
func (store tokenStore) writeLoginInfo(info TokenInfo) error {
bytes, err := json.MarshalIndent(info, "", " ")
if err != nil {
return err
}
return ioutil.WriteFile(store.filePath, bytes, 0644)
}
func (store tokenStore) readToken() (loginInfo TokenInfo, 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
}