如何将客户端 ID 和客户端密钥从操作系统环境变量传递给 GoogleOauthConfig?

问题描述 投票:0回答:1

我正在 golang 中构建一个项目,我想使用环境变量作为客户端 ID 和客户端密钥进行 google 身份验证,但由于某种原因,它在使用 os.Getenv() 时不起作用。 Google 说缺少“缺少必需参数:client_id”“错误 400:invalid_request”。在我看来,它无法从 os.Getenv() 检索它并传递它。

var (
    GoogleOauthConfig = &oauth2.Config{
        RedirectURL:  "http://localhost:8080/GoogleCallback",
        ClientID:     os.Getenv("GOOGLE_KEY"),
        ClientSecret: os.Getenv("GOOGLE_SECRET"),
        Scopes: []string{
            "https://www.googleapis.com/auth/userinfo.profile",
            "https://www.googleapis.com/auth/userinfo.email",
        },
        Endpoint: google.Endpoint,
    }
    OauthStateString = "random"
)

Google 身份验证可以在没有 os.Getenv() 的情况下工作,并且如果我直接将客户端 ID 和客户端密钥作为字符串传递。当我将其放入主函数 fmt.Println(os.Getenv("GOOGLE_KEY")) 并将其打印到终端时,环境变量也可以单独工作。

var (
    GoogleOauthConfig = &oauth2.Config{
        RedirectURL:  "http://localhost:8080/GoogleCallback",
        ClientID:     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        ClientSecret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        Scopes: []string{
            "https://www.googleapis.com/auth/userinfo.profile",
            "https://www.googleapis.com/auth/userinfo.email",
        },
        Endpoint: google.Endpoint,
    }
    OauthStateString = "random"
)

我应该怎么做才能让它发挥作用?

go google-oauth
1个回答
0
投票

你试过吗

os.environ.get('GOOGLE_KEY')

© www.soinside.com 2019 - 2024. All rights reserved.