buildAuthUrl function
Build the OAuth authorization URL.
Implementation
String buildAuthUrl({
required String codeChallenge,
required String state,
required int port,
required bool isManual,
bool loginWithNeomageAi = false,
bool inferenceOnly = false,
String? orgUUID,
String? loginHint,
String? loginMethod,
}) {
final config = getOauthConfig();
final authUrlBase = loginWithNeomageAi
? config.neomageAiAuthorizeUrl
: config.consoleAuthorizeUrl;
final uri = Uri.parse(authUrlBase);
final params = <String, String>{
'code': 'true',
'client_id': config.clientId,
'response_type': 'code',
'redirect_uri': isManual
? config.manualRedirectUrl
: 'http://localhost:$port/callback',
'scope': (inferenceOnly ? [neomageAiInferenceScope] : allOAuthScopes).join(
' ',
),
'code_challenge': codeChallenge,
'code_challenge_method': 'S256',
'state': state,
};
if (orgUUID != null) params['orgUUID'] = orgUUID;
if (loginHint != null) params['login_hint'] = loginHint;
if (loginMethod != null) params['login_method'] = loginMethod;
return uri.replace(queryParameters: params).toString();
}