我正在 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"
)
我应该怎么做才能让它发挥作用?
你试过吗
os.environ.get('GOOGLE_KEY')
?