【问题标题】:Google credentials actual json instead of path to file containing json谷歌凭据实际 json 而不是包含 json 的文件的路径
【发布时间】:2018-05-26 15:49:55
【问题描述】:
我正在开发一个 Web 应用程序并且我正在使用谷歌翻译,所以我设置了环境变量 - GOOGLE_APPLICATION_CREDENTIALS 以指向包含所有密钥的 json 文件。
我想像这样编写实际的json,而不是文件路径:
有没有办法做到这一点?例子?我读到你可以用GOOGLE_CREDENTIALS 做类似的事情,但我没有找到任何关于它的文档。
谢谢。
【问题讨论】:
标签:
google-api
google-cloud-platform
google-oauth
credentials
google-authentication
【解决方案1】:
我相信您可以像这样设置 JSON Web 令牌 (JWT):
const {JWT} = require('google-auth-library');
const keys = require('./jwt.keys.json');
async function main() {
const client = new JWT(
keys.client_email,
null,
keys.private_key,
['https://www.googleapis.com/auth/cloud-platform'],
);
await client.authorize();
const url = `https://www.googleapis.com/dns/v1/projects/${keys.project_id}`;
const res = await client.request({url});
console.log(res.data);
}
main().catch(console.error);
显然,您将定义keys 内联而不是从文件中加载。另见https://github.com/google/google-auth-library-nodejs#json-web-tokens。
【解决方案2】:
不,没有办法将关键信息内联。即使有可能,将它们直接放入代码中也会降低代码的灵活性。
GCP 上没有这样的 GOOGLE_CREDENTIALS 环境变量。