Skip to content

Commit 2e0bf0e

Browse files
committed
fix login flow
1 parent 7420e9b commit 2e0bf0e

File tree

1 file changed

+42
-33
lines changed

1 file changed

+42
-33
lines changed

main.js

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,13 +1358,13 @@ class Mercedesme extends utils.Adapter {
13581358
}
13591359
});
13601360
}
1361-
await this.requestClient({
1361+
const resumeUrl = await this.requestClient({
13621362
method: "get",
13631363
maxBodyLength: Infinity,
13641364
url: "https://id.mercedes-benz.com/as/authorization.oauth2",
13651365
params: {
13661366
client_id: "62778dc4-1de3-44f4-af95-115f06a3a008",
1367-
code_challenge: "r8oYWOJpwrTlaIrsxNspbXLFR9PLvyW6c11b_BiTkGs",
1367+
code_challenge: "ofGuD7msh1a63x2zoM2ZjbaRldc6LoPme4nCEeZP5RI",
13681368
code_challenge_method: "S256",
13691369
redirect_uri: "rismycar://login-callback",
13701370
response_type: "code",
@@ -1376,12 +1376,20 @@ class Mercedesme extends utils.Adapter {
13761376
accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
13771377
"accept-language": "de-DE,de;q=0.9",
13781378
},
1379-
}).catch((error) => {
1380-
this.log.error("Not able to get login page");
1381-
this.log.error(error);
1382-
reject();
1383-
});
1384-
this.requestClient({
1379+
})
1380+
.then((response) => {
1381+
this.log.debug(JSON.stringify(response.data));
1382+
//extract paramter resume from url
1383+
const url = response.request.res.responseUrl;
1384+
const parameters = qs.parse(url.split("?")[1]);
1385+
return parameters.resume;
1386+
})
1387+
.catch((error) => {
1388+
this.log.error("Not able to get login page");
1389+
this.log.error(error);
1390+
reject();
1391+
});
1392+
await this.requestClient({
13851393
method: "post",
13861394
maxBodyLength: Infinity,
13871395
url: "https://id.mercedes-benz.com/ciam/auth/ua",
@@ -1403,7 +1411,7 @@ class Mercedesme extends utils.Adapter {
14031411
this.log.error(error);
14041412
reject();
14051413
});
1406-
this.requestClient({
1414+
await this.requestClient({
14071415
method: "post",
14081416
maxBodyLength: Infinity,
14091417
url: "https://id.mercedes-benz.com/ciam/auth/login/user",
@@ -1430,7 +1438,7 @@ class Mercedesme extends utils.Adapter {
14301438
});
14311439
//generate random 32 char string
14321440
const rid = this.generateRandomString(32);
1433-
const preLoginData = this.requestClient({
1441+
const preLoginData = await this.requestClient({
14341442
method: "post",
14351443
maxBodyLength: Infinity,
14361444
url: "https://id.mercedes-benz.com/ciam/auth/login/pass",
@@ -1460,15 +1468,15 @@ class Mercedesme extends utils.Adapter {
14601468
error.response && this.log.error(JSON.stringify(error.response.data));
14611469
reject();
14621470
});
1463-
const code = this.requestClient({
1471+
const code = await this.requestClient({
14641472
method: "post",
14651473
maxBodyLength: Infinity,
1466-
url: "https://id.mercedes-benz.com/as/vbhPQVj5m4/resume/as/authorization.ping",
1474+
url: "https://id.mercedes-benz.com" + resumeUrl,
14671475
headers: {
14681476
accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
14691477
"content-type": "application/x-www-form-urlencoded",
14701478
origin: "https://id.mercedes-benz.com",
1471-
cookie: "INGRESSCOOKIE=1738329299.285.481.835213|45196634e7eccf7a4e21b2a92617a3c2",
1479+
14721480
"accept-language": "de-DE,de;q=0.9",
14731481
"user-agent":
14741482
"Mozilla/5.0 (iPhone; CPU iPhone OS 15_8_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.6 Mobile/15E148 Safari/604.1",
@@ -1493,31 +1501,32 @@ class Mercedesme extends utils.Adapter {
14931501
this.log.error(error);
14941502
error.response && this.log.error(JSON.stringify(error.response.data));
14951503
});
1496-
this.requestClient({
1504+
await this.requestClient({
14971505
method: "post",
14981506
maxBodyLength: Infinity,
14991507
url: "https://id.mercedes-benz.com/as/token.oauth2",
1500-
headers: {
1501-
"device-uuid": this.deviceuuid,
1502-
"x-sessionid": "56A39234-50CA-4B8B-8B54-399DCA7EA31E",
1503-
"user-agent": "MyCar/1.51.0 (com.daimler.ris.mercedesme.ece.ios; build:2578; iOS 15.8.3) Alamofire/5.9.1",
1504-
"ris-os-version": "15.8.3",
1505-
"ris-application-version": "1.51.0 (2578)",
1506-
"x-device-id": "18E6FF44-40EA-4A77-AB69-49CDF5E7A834",
1507-
"x-trackingid": "4D4831F3-5553-4367-8B80-D1332109ADA6",
1508-
stage: "prod",
1509-
"ris-sdk-version": "2.132.2",
1510-
"x-applicationname": "mycar-store-ece",
1511-
"ris-os-name": "ios",
1512-
"x-locale": "de-DE",
1513-
"accept-language": "de-DE;q=1.0",
1514-
"x-request-id": "4D4831F3-5553-4367-8B80-D1332109ADA6",
1515-
accept: "*/*",
1516-
"content-type": "application/x-www-form-urlencoded; charset=utf-8",
1517-
},
1508+
// headers: {
1509+
// "device-uuid": this.deviceuuid,
1510+
// "x-sessionid": "56A39234",
1511+
// "user-agent": "MyCar/1.51.0 (com.daimler.ris.mercedesme.ece.ios; build:2578; iOS 15.8.3) Alamofire/5.9.1",
1512+
// "ris-os-version": "15.8.3",
1513+
// "ris-application-version": "1.51.0 (2578)",
1514+
// "x-device-id": "18E6FF44",
1515+
// "x-trackingid": "4D4831F3",
1516+
// stage: "prod",
1517+
// "ris-sdk-version": "2.132.2",
1518+
// "x-applicationname": "mycar-store-ece",
1519+
// "ris-os-name": "ios",
1520+
// "x-locale": "de-DE",
1521+
// "accept-language": "de-DE;q=1.0",
1522+
// "x-request-id": "4D4831F3",
1523+
// accept: "*/*",
1524+
// "content-type": "application/x-www-form-urlencoded; charset=utf-8",
1525+
// },
1526+
headers: this.baseHeader,
15181527

15191528
data: {
1520-
client_id: " 62778dc4-1de3-44f4-af95-115f06a3a008",
1529+
client_id: "62778dc4-1de3-44f4-af95-115f06a3a008",
15211530
code: code,
15221531
code_verifier: "Vg4OnWSQLDHLnDMmAKdURg0Ey_sSPsNRrx75B_losEg",
15231532
grant_type: "authorization_code",

0 commit comments

Comments
 (0)