n8n-nodes-jygse-vw-weconnect 0.2.14 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -40,6 +40,8 @@ exports.VwWeConnect = void 0;
|
|
|
40
40
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
41
41
|
const crypto = __importStar(require("crypto"));
|
|
42
42
|
const axios_1 = __importDefault(require("axios"));
|
|
43
|
+
const axios_cookiejar_support_1 = require("axios-cookiejar-support");
|
|
44
|
+
const tough_cookie_1 = require("tough-cookie");
|
|
43
45
|
class VwWeConnect {
|
|
44
46
|
constructor() {
|
|
45
47
|
this.description = {
|
|
@@ -220,6 +222,9 @@ async function vwLogin(context, email, password) {
|
|
|
220
222
|
const state = generateTraceId(); // Use UUID as state
|
|
221
223
|
const traceId = generateTraceId(); // For weconnect-trace-id header
|
|
222
224
|
const codeVerifier = generateCodeVerifier();
|
|
225
|
+
// Create cookie jar for session management (like ioBroker)
|
|
226
|
+
const jar = new tough_cookie_1.CookieJar();
|
|
227
|
+
const client = (0, axios_cookiejar_support_1.wrapper)(axios_1.default.create({ jar }));
|
|
223
228
|
// Browser-like headers (EXACTLY from ioBroker.vw-connect)
|
|
224
229
|
const browserHeaders = {
|
|
225
230
|
'User-Agent': VW_USER_AGENT,
|
|
@@ -242,9 +247,8 @@ async function vwLogin(context, email, password) {
|
|
|
242
247
|
'&state=' + state +
|
|
243
248
|
'&code_challenge=' + codeChallenge +
|
|
244
249
|
'&code_challenge_method=S256';
|
|
245
|
-
// Use axios
|
|
246
|
-
|
|
247
|
-
const authorizeResponse = await axios_1.default.get(authorizeUrl, {
|
|
250
|
+
// Use axios with cookie jar for session management
|
|
251
|
+
const authorizeResponse = await client.get(authorizeUrl, {
|
|
248
252
|
headers: browserHeaders,
|
|
249
253
|
maxRedirects: 0, // Don't follow any redirects
|
|
250
254
|
validateStatus: () => true, // Accept any status code
|
|
@@ -302,9 +306,9 @@ async function vwLogin(context, email, password) {
|
|
|
302
306
|
if (!currentUrl.startsWith('http') && !currentUrl.startsWith('/')) {
|
|
303
307
|
break;
|
|
304
308
|
}
|
|
305
|
-
// Follow the redirect using axios
|
|
309
|
+
// Follow the redirect using axios with cookie jar
|
|
306
310
|
const followUrl = currentUrl.startsWith('http') ? currentUrl : `https://identity.vwgroup.io${currentUrl}`;
|
|
307
|
-
const followResponse = await
|
|
311
|
+
const followResponse = await client.get(followUrl, {
|
|
308
312
|
headers: browserHeaders,
|
|
309
313
|
maxRedirects: 0,
|
|
310
314
|
validateStatus: () => true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-jygse-vw-weconnect",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "n8n community node for VW We Connect - Control your Volkswagen T6.1 and other VW vehicles",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -44,10 +44,13 @@
|
|
|
44
44
|
]
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"axios": "^1.6.0"
|
|
47
|
+
"axios": "^1.6.0",
|
|
48
|
+
"axios-cookiejar-support": "^5.0.0",
|
|
49
|
+
"tough-cookie": "^4.1.0"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@types/node": "^20.10.0",
|
|
53
|
+
"@types/tough-cookie": "^4.0.5",
|
|
51
54
|
"@typescript-eslint/parser": "^6.0.0",
|
|
52
55
|
"eslint": "^8.56.0",
|
|
53
56
|
"gulp": "^4.0.2",
|