Fix using NXAPI_AUTH_CLIENT_ID from .env

This commit is contained in:
Ellie
2026-03-20 02:07:19 +00:00
parent 376c8a4445
commit f57c6a572f
3 changed files with 21 additions and 30 deletions

View File

@@ -19,10 +19,10 @@ import { CREDITS_NOTICE, GITLAB_URL, LICENCE_NOTICE } from '../../common/constan
import { checkUpdates, UpdateCacheData } from '../../common/update.js';
import Users, { CoralUser } from '../../common/users.js';
import createDebug from '../../util/debug.js';
import { dev, dir, git, release, version } from '../../util/product.js';
import { dev, dir, embedded_nxapi_auth_app_client_id, git, release, version } from '../../util/product.js';
import { addUserAgent } from '../../util/useragent.js';
import { initStorage, paths } from '../../util/storage.js';
import { ClientAssertionProvider, NXAPI_AUTH_APP_CLIENT_ID, NXAPI_AUTH_APP_SCOPE, setClientAssertionProvider } from '../../util/nxapi-auth.js';
import { NxapiClientAssertionProvider, setClientAssertionProvider } from '../../util/nxapi-auth.js';
import createI18n, { languages } from '../i18n/index.js';
import { CoralApiInterface } from '../../api/coral.js';
import { StatusUpdateIdentifierSymbol, StatusUpdateMonitor, StatusUpdateNotify, StatusUpdateResult, StatusUpdateSubscriber } from '../../common/status.js';
@@ -175,9 +175,12 @@ export async function init() {
initGlobals();
addUserAgent('nxapi-app (Chromium ' + process.versions.chrome + '; Electron ' + process.versions.electron + ')');
if (NXAPI_AUTH_APP_CLIENT_ID) {
setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_APP_CLIENT_ID, undefined,
NXAPI_AUTH_APP_SCOPE));
if (embedded_nxapi_auth_app_client_id) {
setClientAssertionProvider(new NxapiClientAssertionProvider(embedded_nxapi_auth_app_client_id, undefined,
'ca:gf ca:er ca:dr'));
} else if (process.env.NXAPI_AUTH_CLIENT_ID) {
setClientAssertionProvider(new NxapiClientAssertionProvider(process.env.NXAPI_AUTH_CLIENT_ID, undefined,
process.env.NXAPI_AUTH_SCOPE ?? 'ca:gf ca:er ca:dr'));
}
setAboutPanelOptions();

View File

@@ -4,14 +4,14 @@ import { setGlobalDispatcher } from 'undici';
import * as commands from './cli/commands.js';
import { checkUpdates } from './common/update.js';
import createDebug from './util/debug.js';
import { dev, product } from './util/product.js';
import { dev, embedded_nxapi_auth_cli_client_id, pkg, product } from './util/product.js';
import { paths } from './util/storage.js';
import { YargsArguments } from './util/yargs.js';
import { addUserAgent } from './util/useragent.js';
import { USER_AGENT_INFO_URL } from './common/constants.js';
import { init as initGlobals } from './common/globals.js';
import { buildEnvironmentProxyAgent } from './util/undici-proxy.js';
import { ClientAssertionProvider, NXAPI_AUTH_CLI_CLIENT_ID, NXAPI_AUTH_CLI_SCOPE, setClientAssertionProvider } from './util/nxapi-auth.js';
import { NxapiClientAssertionProvider, setClientAssertionProvider } from './util/nxapi-auth.js';
const debug = createDebug('cli');
@@ -60,9 +60,15 @@ export async function main(argv = process.argv.slice(2)) {
addUserAgent('unidentified-script');
}
if (NXAPI_AUTH_CLI_CLIENT_ID) {
setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_CLI_CLIENT_ID, undefined,
NXAPI_AUTH_CLI_SCOPE));
if (embedded_nxapi_auth_cli_client_id) {
setClientAssertionProvider(new NxapiClientAssertionProvider(embedded_nxapi_auth_cli_client_id, undefined,
'ca:gf ca:er ca:dr ca:na'));
} else if (pkg.__nxapi_auth?.cli?.client_id) {
setClientAssertionProvider(new NxapiClientAssertionProvider(pkg.__nxapi_auth.cli.client_id, undefined,
'ca:gf ca:er ca:dr ca:na'));
} else if (process.env.NXAPI_AUTH_CLIENT_ID) {
setClientAssertionProvider(new NxapiClientAssertionProvider(process.env.NXAPI_AUTH_CLIENT_ID, undefined,
process.env.NXAPI_AUTH_SCOPE ?? 'ca:gf ca:er ca:dr'));
}
const yargs = createYargs(argv);

View File

@@ -2,25 +2,6 @@ import { createHash } from 'node:crypto';
import { Jwt, JwtAlgorithm } from './jwt.js';
import { dev, embedded_nxapi_auth_app_client_id, embedded_nxapi_auth_cli_client_id, git, pkg, release } from './product.js';
export const NXAPI_AUTH_CLI_CLIENT_ID =
embedded_nxapi_auth_cli_client_id ??
(pkg.__nxapi_auth?.cli?.client_id as string | undefined) ??
process.env.NXAPI_AUTH_CLIENT_ID ??
null;
export const NXAPI_AUTH_CLI_SCOPE =
embedded_nxapi_auth_cli_client_id || pkg.__nxapi_auth?.cli?.client_id ? 'ca:gf ca:er ca:dr ca:na' :
process.env.NXAPI_AUTH_SCOPE ??
'ca:gf ca:er ca:dr';
export const NXAPI_AUTH_APP_CLIENT_ID =
embedded_nxapi_auth_app_client_id ??
process.env.NXAPI_AUTH_CLIENT_ID ??
null;
export const NXAPI_AUTH_APP_SCOPE =
embedded_nxapi_auth_app_client_id ? 'ca:gf ca:er ca:dr' :
process.env.NXAPI_AUTH_SCOPE ??
'ca:gf ca:er ca:dr';
export let client_auth_provider: ClientAuthProviderInterface | null = null;
export let client_assertion_provider: ClientAssertionProviderInterface | null = null;
@@ -50,7 +31,8 @@ export interface ClientCredentialsInterface {
scope: string;
}
export class ClientAssertionProvider implements ClientAssertionProviderInterface {
/** @internal */
export class NxapiClientAssertionProvider implements ClientAssertionProviderInterface {
constructor(
readonly client_id: string,
// readonly iss = 'nxapi',