Tesla Command: make sure token is refreshed at least once (#12121)

This commit is contained in:
andig 2024-02-07 11:06:12 +01:00 • committed by GitHub
parent 8d1a109290
commit de1fb86df7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -76,15 +76,22 @@ func NewIdentity(log *util.Logger, token *oauth2.Token) (*Identity, error) {
// database token
if !token.Valid() {
if err := settings.Json(v.settingsKey(), &token); err != nil {
return nil, fmt.Errorf("missing token setting for %s: %w", claims.Subject, err)
var tok oauth2.Token
if err := settings.Json(v.settingsKey(), &tok); err == nil {
token = &tok
}
}
if !token.Valid() {
return nil, errors.New("token expired")
if !token.Valid() && token.RefreshToken != "" {
if tok, err := v.RefreshToken(token); err == nil {
token = tok
}
}
if !token.Valid() {
return nil, errors.New("token expired")
}
// acct, err := account.New(token.AccessToken, userAgent)
// if err != nil {
// return nil, err