From 8431636b1386152ebc3d2a49db2f26ab8c89270f Mon Sep 17 00:00:00 2001 From: Alex Corn Date: Wed, 29 Sep 2021 00:49:58 -0400 Subject: [PATCH] Updated auth to use SSO tokens --- src/auth.js | 16 ---------------- teslajs.js | 15 ++++++++++----- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/auth.js b/src/auth.js index 5c6b2e4..d41e7d9 100644 --- a/src/auth.js +++ b/src/auth.js @@ -118,19 +118,6 @@ exports.login = function login(credentials, callback) { redirect_uri: url.protocol + '//' + url.host + url.pathname } }); - }).then(function (result) { - return req({ - method: 'POST', - url: 'https://owner-api.teslamotors.com/oauth/token', - headers: { - Authorization: 'Bearer ' + result.body.access_token - }, - json: true, - body: { - grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', - client_id: _0x2dc0[0] - } - }); }).then(function (result) { callback(null, result.response, result.body); }).catch(function (error) { @@ -238,6 +225,3 @@ function req(parameters) { }); }); } - -//var _0x2dc0 = ["\x65\x34\x61\x39\x39\x34\x39\x66\x63\x66\x61\x30\x34\x30\x36\x38\x66\x35\x39\x61\x62\x62\x35\x61\x36\x35\x38\x66\x32\x62\x61\x63\x30\x61\x33\x34\x32\x38\x65\x34\x36\x35\x32\x33\x31\x35\x34\x39\x30\x62\x36\x35\x39\x64\x35\x61\x62\x33\x66\x33\x35\x61\x39\x65", "\x63\x37\x35\x66\x31\x34\x62\x62\x61\x64\x63\x38\x62\x65\x65\x33\x61\x37\x35\x39\x34\x34\x31\x32\x63\x33\x31\x34\x31\x36\x66\x38\x33\x30\x30\x32\x35\x36\x64\x37\x36\x36\x38\x65\x61\x37\x65\x36\x65\x37\x66\x30\x36\x37\x32\x37\x62\x66\x62\x39\x64\x32\x32\x30"]; -var _0x2dc0 = ["\x38\x31\x35\x32\x37\x63\x66\x66\x30\x36\x38\x34\x33\x63\x38\x36\x33\x34\x66\x64\x63\x30\x39\x65\x38\x61\x63\x30\x61\x62\x65\x66\x62\x34\x36\x61\x63\x38\x34\x39\x66\x33\x38\x66\x65\x31\x65\x34\x33\x31\x63\x32\x65\x66\x32\x31\x30\x36\x37\x39\x36\x33\x38\x34", "\x63\x37\x32\x35\x37\x65\x62\x37\x31\x61\x35\x36\x34\x30\x33\x34\x66\x39\x34\x31\x39\x65\x65\x36\x35\x31\x63\x37\x64\x30\x65\x35\x66\x37\x61\x61\x36\x62\x66\x62\x64\x31\x38\x62\x61\x66\x62\x35\x63\x35\x63\x30\x33\x33\x62\x30\x39\x33\x62\x62\x32\x66\x61\x33"]; diff --git a/teslajs.js b/teslajs.js index fc5342a..114be93 100644 --- a/teslajs.js +++ b/teslajs.js @@ -404,13 +404,18 @@ exports.refreshToken = function refreshToken(refresh_token, callback) { return; } + var url = portalBaseURI + '/oauth/token'; + var body = {"grant_type": "refresh_token", "refresh_token": refresh_token}; + // If this refresh token is a JWT, we want to use the SSO refresh endpoint + if (refresh_token.split('.').length == 3) { + url = 'https://auth.tesla.com/oauth2/v3/token'; + body.client_id = "ownerapi"; + } + var req = { method: 'POST', - url: portalBaseURI + '/oauth/token', - body: { - "grant_type": "refresh_token", - "refresh_token": refresh_token - } + url: url, + body: body }; log(API_REQUEST_LEVEL, "\nRequest: " + JSON.stringify(req));