VW: fix token refresh (#25642)
Co-authored-by: andig <cpuidle@gmail.com>
This commit is contained in:
parent
0fc867cae4
commit
8fb8cee72d
2 changed files with 23 additions and 6 deletions
|
|
@ -4,4 +4,5 @@ const (
|
|||
BaseURL = "https://emea.bff.cariad.digital"
|
||||
AndroidPackageName = "com.volkswagen.weconnect"
|
||||
UserAgent = "Volkswagen/3.51.1-android/14"
|
||||
ClientID = "a24fba63-34b3-4d43-b181-942111e6bda8@apps_vw-dilab_com"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package loginapps
|
|||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/evcc-io/evcc/util/oauth"
|
||||
|
|
@ -52,17 +53,32 @@ func (v *Service) Exchange(q url.Values) (*Token, error) {
|
|||
}
|
||||
|
||||
func (v *Service) Refresh(token *Token) (*Token, error) {
|
||||
req, err := request.New(http.MethodGet, Endpoint.TokenURL, nil, map[string]string{
|
||||
"Accept": "application/json",
|
||||
"Authorization": "Bearer " + token.RefreshToken,
|
||||
})
|
||||
body := url.Values{
|
||||
"grant_type": []string{"refresh_token"},
|
||||
"refresh_token": []string{token.RefreshToken},
|
||||
"client_id": []string{cariad.ClientID},
|
||||
}
|
||||
|
||||
var res Token
|
||||
req, err := request.New(
|
||||
http.MethodPost,
|
||||
cariad.BaseURL+"/login/v1/idk/token",
|
||||
strings.NewReader(body.Encode()),
|
||||
request.URLEncoding,
|
||||
map[string]string{
|
||||
"Connection": "keep-alive",
|
||||
"User-Agent": cariad.UserAgent,
|
||||
"Accept": "application/json",
|
||||
"x-android-package-name": cariad.AndroidPackageName,
|
||||
},
|
||||
)
|
||||
|
||||
var res oauth2.Token
|
||||
if err == nil {
|
||||
err = v.DoJSON(req, &res)
|
||||
}
|
||||
|
||||
return &res, err
|
||||
t := Token(res)
|
||||
return &t, err
|
||||
}
|
||||
|
||||
// RefreshToken implements oauth.TokenRefresher
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue