auth: add Anthropic auth token storage
This commit is contained in:
+41
-2
@@ -7,7 +7,9 @@ const AUTH_FILE = resolve(AUTH_DIR, 'auth.json');
|
||||
|
||||
export interface AnthropicAuthInfo {
|
||||
/** Anthropic API key. */
|
||||
api_key: string;
|
||||
api_key?: string;
|
||||
/** Anthropic auth token (OAuth/token mode). */
|
||||
auth_token?: string;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
@@ -51,7 +53,21 @@ export function storeAnthropicAuth(apiKey: string): void {
|
||||
throw new Error('Anthropic API key is empty');
|
||||
}
|
||||
const store = readAuthStore();
|
||||
store.anthropic = { api_key: trimmed, created_at: new Date().toISOString() };
|
||||
store.anthropic = { ...store.anthropic, api_key: trimmed, created_at: new Date().toISOString() };
|
||||
writeAuthStore(store);
|
||||
}
|
||||
|
||||
export function loadStoredAnthropicAuthToken(): string | null {
|
||||
return loadStoredAnthropicAuth()?.auth_token ?? null;
|
||||
}
|
||||
|
||||
export function storeAnthropicAuthToken(token: string): void {
|
||||
const trimmed = token.trim();
|
||||
if (!trimmed) {
|
||||
throw new Error('Anthropic auth token is empty');
|
||||
}
|
||||
const store = readAuthStore();
|
||||
store.anthropic = { ...store.anthropic, auth_token: trimmed, created_at: new Date().toISOString() };
|
||||
writeAuthStore(store);
|
||||
}
|
||||
|
||||
@@ -61,6 +77,19 @@ export function clearAnthropicAuth(): void {
|
||||
writeAuthStore(store);
|
||||
}
|
||||
|
||||
export function clearAnthropicAuthToken(): void {
|
||||
const store = readAuthStore();
|
||||
if (!store.anthropic) {
|
||||
writeAuthStore(store);
|
||||
return;
|
||||
}
|
||||
delete store.anthropic.auth_token;
|
||||
if (!store.anthropic.api_key && !store.anthropic.auth_token) {
|
||||
delete store.anthropic;
|
||||
}
|
||||
writeAuthStore(store);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an Anthropic API key from any available source.
|
||||
* Priority: ANTHROPIC_API_KEY → stored auth.json.
|
||||
@@ -70,3 +99,13 @@ export function getAnthropicApiKey(): string | null {
|
||||
?? loadStoredAnthropicAuth()?.api_key
|
||||
?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an Anthropic auth token from any available source.
|
||||
* Priority: ANTHROPIC_AUTH_TOKEN → stored auth.json.
|
||||
*/
|
||||
export function getAnthropicAuthToken(): string | null {
|
||||
return process.env.ANTHROPIC_AUTH_TOKEN
|
||||
?? loadStoredAnthropicAuth()?.auth_token
|
||||
?? null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user