Tesla Command: make sure token is refreshed at least once (#12121)
This commit is contained in:
parent
8d1a109290
commit
de1fb86df7
1 changed files with 11 additions and 4 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue