openyida 2026.5.9-beta.1 → 2026.5.9-beta.2
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.
- package/lib/auth/qr-login.js +18 -9
- package/package.json +1 -1
package/lib/auth/qr-login.js
CHANGED
|
@@ -483,12 +483,15 @@ async function fetchLegacyQrCodeUrl(baseUrl, cookieHeader) {
|
|
|
483
483
|
};
|
|
484
484
|
}
|
|
485
485
|
|
|
486
|
-
async function fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader) {
|
|
486
|
+
async function fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader, options = {}) {
|
|
487
487
|
const parsedLoginUrl = new URL(loginPageUrl);
|
|
488
488
|
const origin = parsedLoginUrl.origin;
|
|
489
489
|
const apiUrl = `${origin}/oauth2/generate_qrcode`;
|
|
490
|
+
const targetCorpId = getTargetCorpId(options);
|
|
490
491
|
|
|
491
|
-
const response = await fetchPost(apiUrl, buildOAuthPostData(loginPageUrl
|
|
492
|
+
const response = await fetchPost(apiUrl, buildOAuthPostData(loginPageUrl, {
|
|
493
|
+
...(targetCorpId ? { corpId: targetCorpId } : {}),
|
|
494
|
+
}), {
|
|
492
495
|
cookieHeader,
|
|
493
496
|
referer: loginPageUrl,
|
|
494
497
|
origin,
|
|
@@ -522,6 +525,7 @@ async function fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader) {
|
|
|
522
525
|
loginPageUrl,
|
|
523
526
|
origin,
|
|
524
527
|
code,
|
|
528
|
+
corpId: targetCorpId,
|
|
525
529
|
},
|
|
526
530
|
};
|
|
527
531
|
}
|
|
@@ -534,9 +538,9 @@ async function fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader) {
|
|
|
534
538
|
* @param {string} loginPageUrl
|
|
535
539
|
* @returns {Promise<{ qrUrl: string, state: string, cookieHeader: string, context: object }>}
|
|
536
540
|
*/
|
|
537
|
-
async function fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl) {
|
|
541
|
+
async function fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl, options = {}) {
|
|
538
542
|
if (isDingtalkOAuthChallengeUrl(loginPageUrl)) {
|
|
539
|
-
return fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader);
|
|
543
|
+
return fetchDingtalkOAuthQrCodeUrl(loginPageUrl, cookieHeader, options);
|
|
540
544
|
}
|
|
541
545
|
|
|
542
546
|
return fetchLegacyQrCodeUrl(baseUrl, cookieHeader);
|
|
@@ -546,7 +550,7 @@ async function postDingtalkOAuthLoginWithQr(context, cookieHeader, extraParams =
|
|
|
546
550
|
const pollUrl = `${context.origin}/oauth2/login_with_qr`;
|
|
547
551
|
const response = await fetchPost(pollUrl, buildOAuthPostData(context.loginPageUrl, {
|
|
548
552
|
code: context.code,
|
|
549
|
-
|
|
553
|
+
...(context.corpId ? { corpId: context.corpId } : {}),
|
|
550
554
|
stayLogin: false,
|
|
551
555
|
...extraParams,
|
|
552
556
|
}), {
|
|
@@ -585,7 +589,7 @@ async function pollDingtalkQrCodeStatus(state, cookieHeader, onWaiting, context,
|
|
|
585
589
|
|
|
586
590
|
const { parsed, cookieHeader: updatedCookieHeader } = await postLoginWithQr(context, cookieHeader, {
|
|
587
591
|
code: state,
|
|
588
|
-
|
|
592
|
+
...(targetCorpId ? { corpId: targetCorpId } : {}),
|
|
589
593
|
stayLogin: false,
|
|
590
594
|
});
|
|
591
595
|
cookieHeader = updatedCookieHeader;
|
|
@@ -724,7 +728,7 @@ async function exchangeDingtalkOAuthResult(baseUrl, loginResult, cookieHeader, c
|
|
|
724
728
|
selectedCorp = await resolveCorpSelection(corpList, options);
|
|
725
729
|
|
|
726
730
|
const retryResult = await postLoginWithQr(context, cookieHeader, {
|
|
727
|
-
|
|
731
|
+
corpId: selectedCorp.corpId,
|
|
728
732
|
});
|
|
729
733
|
cookieHeader = retryResult.cookieHeader;
|
|
730
734
|
const parsed = retryResult.parsed;
|
|
@@ -1062,7 +1066,9 @@ async function startCodexQrLogin(options = {}) {
|
|
|
1062
1066
|
const session = await fetchInitialSession(baseUrl, options);
|
|
1063
1067
|
let { cookieHeader } = session;
|
|
1064
1068
|
const { loginPageUrl } = session;
|
|
1065
|
-
const { qrUrl, state, cookieHeader: updatedCookieHeader, context } = await fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl
|
|
1069
|
+
const { qrUrl, state, cookieHeader: updatedCookieHeader, context } = await fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl, {
|
|
1070
|
+
corpId: targetCorpId,
|
|
1071
|
+
});
|
|
1066
1072
|
cookieHeader = updatedCookieHeader;
|
|
1067
1073
|
|
|
1068
1074
|
let imageWritten = false;
|
|
@@ -1224,7 +1230,9 @@ async function qrLogin(options = {}) {
|
|
|
1224
1230
|
qStep(2, t('qr_login.step_get_qr'));
|
|
1225
1231
|
let qrUrl, state, context;
|
|
1226
1232
|
try {
|
|
1227
|
-
({ qrUrl, state, cookieHeader, context } = await fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl
|
|
1233
|
+
({ qrUrl, state, cookieHeader, context } = await fetchQrCodeUrl(baseUrl, cookieHeader, loginPageUrl, {
|
|
1234
|
+
corpId: targetCorpId,
|
|
1235
|
+
}));
|
|
1228
1236
|
} catch (err) {
|
|
1229
1237
|
throw new Error(t('qr_login.get_qr_error', err.message));
|
|
1230
1238
|
}
|
|
@@ -1364,6 +1372,7 @@ module.exports = {
|
|
|
1364
1372
|
exchangeDingtalkOAuthResult,
|
|
1365
1373
|
resolveDingtalkOAuthCorpForFreshQr,
|
|
1366
1374
|
pollDingtalkQrCodeStatus,
|
|
1375
|
+
buildOAuthPostData,
|
|
1367
1376
|
buildCodexCorpInteraction,
|
|
1368
1377
|
buildCodexPollCommand,
|
|
1369
1378
|
getTargetCorpId,
|