如何在 GO 中获取 Azure AD JWT

How to get Azure AD JWT in GO

所以我正在用 Go 试水。我需要手动对受 ​​Azure AD 保护的端点进行 REST 调用。我正在使用 Azure Identity 包,但我仍然无法获得令牌。

package main

import (
    "context"
    "fmt"

    azi "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)

func main() {

    cred, err := azi.NewInteractiveBrowserCredential(nil)
    if err != nil {
        fmt.Println(err.Error())
        return
    }

    fmt.Println("No error ")
    var ctx = context.Context()
    fmt.Println(cred.GetToken(ctx))
}

然后会产生以下错误响应

# command-line-arguments
.\main.go:19:27: missing argument to conversion to context.Context: context.Context()

有人可以指出我做错事的正确方向吗?

context.Context 是一个接口,而不是方法 (https://pkg.go.dev/context#Context),这就是您收到错误的原因,您正试图将任何内容转换为该类型。

调用 GetToken 方法需要实现 context.Context.

的东西

尝试用 var ctx = context.Background()

替换 var ctx = context.Context()

在此处阅读有关 context.Context 的更多信息 https://pkg.go.dev/context