소스 검색

Fix read credentials for ccm service

世界 2 달 전
부모
커밋
2f377b2cdf
3개의 변경된 파일9개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 1
      docs/configuration/service/ccm.md
  2. 3 1
      docs/configuration/service/ccm.zh.md
  3. 3 0
      service/ccm/credential.go

+ 3 - 1
docs/configuration/service/ccm.md

@@ -37,7 +37,9 @@ See [Listen Fields](/configuration/shared/listen/) for details.
 
 
 Path to the Claude Code OAuth credentials file.
 Path to the Claude Code OAuth credentials file.
 
 
-Defaults to `~/.claude/.credentials.json` if not specified.
+If not specified, defaults to:
+- `$CLAUDE_CONFIG_DIR/.credentials.json` if `CLAUDE_CONFIG_DIR` environment variable is set
+- `~/.claude/.credentials.json` otherwise
 
 
 On macOS, credentials are read from the system keychain first, then fall back to the file if unavailable.
 On macOS, credentials are read from the system keychain first, then fall back to the file if unavailable.
 
 

+ 3 - 1
docs/configuration/service/ccm.zh.md

@@ -37,7 +37,9 @@ CCM(Claude Code 多路复用器)服务是一个多路复用服务,允许
 
 
 Claude Code OAuth 凭据文件的路径。
 Claude Code OAuth 凭据文件的路径。
 
 
-如果未指定,默认使用 `~/.claude/.credentials.json`。
+如果未指定,默认值为:
+- 如果设置了 `CLAUDE_CONFIG_DIR` 环境变量,则使用 `$CLAUDE_CONFIG_DIR/.credentials.json`
+- 否则使用 `~/.claude/.credentials.json`
 
 
 在 macOS 上,首先从系统钥匙串读取凭据,如果不可用则回退到文件。
 在 macOS 上,首先从系统钥匙串读取凭据,如果不可用则回退到文件。
 
 

+ 3 - 0
service/ccm/credential.go

@@ -32,6 +32,9 @@ func getRealUser() (*user.User, error) {
 }
 }
 
 
 func getDefaultCredentialsPath() (string, error) {
 func getDefaultCredentialsPath() (string, error) {
+	if configDir := os.Getenv("CLAUDE_CONFIG_DIR"); configDir != "" {
+		return filepath.Join(configDir, ".credentials.json"), nil
+	}
 	userInfo, err := getRealUser()
 	userInfo, err := getRealUser()
 	if err != nil {
 	if err != nil {
 		return "", err
 		return "", err