对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

使用Atlas Go SDK 进行身份验证

atlas-sdk-go 库利用摘要式身份身份验证作为其默认身份验证方法。 您可以通过Atlas用户界面或Atlas CLI创建API密钥。

要学习;了解有关API身份验证的更多信息,请参阅Atlas Administration API身份验证。

要访问权限Atlas Admin API的不同部分,请构建新的Atlas SDK客户端并使用其服务。 示例:

package main import ( "context" "fmt" "log" "os" "go.mongodb.org/atlas-sdk/v20250312001/admin") func main() { ctx := context.Background() apiKey := os.Getenv("MONGODB_ATLAS_PUBLIC_KEY") apiSecret := os.Getenv("MONGODB_ATLAS_PRIVATE_KEY") sdk, err := admin.NewClient(admin.UseDigestAuth(apiKey, apiSecret)) if err != nil { log.Fatalf("Error instantiating new client: %v", err) } projects, response, err := sdk.ProjectsApi.ListProjects(ctx).Execute() if err != nil { log.Fatalf("Could not fetch projects: %v", err) } fmt.Printf("Response status: %v\n", response.Status) fmt.Printf("Projects: %v\n", projects)}

Atlas SDK Go使用服务帐户提供 OAuth 身份验证。目前,此功能作为预览功能提供。要学习;了解更多信息,请参阅预览功能。

服务帐户实施 OAuth client_credentials 授权。有关该功能的更多信息,请参阅服务帐户公共文档。

使用服务帐户进行身份验证

package main import ( "context" "log" "os" "go.mongodb.org/atlas-sdk/v20250312001/admin") func main() { clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID") clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET") if clientID == "" || clientSecret == "" { log.Fatal("Missing CLIENT_ID or CLIENT_SECRET environment variables") } // Using ClientID and ClientSecret. No cache supported (nil). sdk, err := admin.NewClient(admin.UseOAuthAuth(context.Background(), clientID, clientSecret)) // Make API calls}

有关完整的参考实施,请参阅服务帐户示例

撤销会在 OAuth 令牌到期之前使其失效。 这实际上会“注销”当前的 OAuth客户端,并允许您配置新客户端。

// Sounding code omitted for brevityrevokeConfig := credentials.NewConfig(clientID, clientSecret)revokeConfig.RevokeToken(context.Background(), &auth.Token{ AccessToken: "yourTokenHere"});

服务帐户 OAuth 访问令牌的有效性在 expires_in字段中表示为秒数。 客户端可以缓存这些访问令牌以缓解速率限制并遵守访问令牌限制。

有关如何在Atlas SDK for Go中缓存和重用 OAuth 令牌的示例,请参阅服务帐户 OAuth 令牌缓存服务帐户 OAuth 令牌缓存示例。

给本页内容打分