如何使用 nodejs 客户端库在 google 中使用 OAuth2Client 创建 postgresql 实例
how to create a postgresql instance using OAuth2Client in google using nodejs client library
我需要使用 google SQL admin API 创建 PostgreSQL 实例,为了进行身份验证,我想在节点 js 客户端库中使用 OAuth2Client
function first() {
const oAuth2Client = new google.auth.OAuth2(
client_id,
client_secret,
redirect_uris[0]
);
var tkn = await oAuth2Client.getToken(code_from_another_user);
oAuth2Client.setCredentials(tkn);
return oAuth2Client;
});
function second(oAuth2Client)
{
var req = {
project: prjName,
resource: {
databaseVersion: "POSTGRES_13",
name: name,
region: cregion ,
gceZone: czone,
settings: {*****}
rootPassword: "xxxxx",
},
auth: oAuth2Client,
};
var crpsql = await sqlAdmin.instances.insert(req);
return crpsql;
});
function mainexec()
{
var a = first();
var b = second(a);
});
我收到这个错误
Error: No access, refresh token, API key or refresh handler callback
is set
实际上,我正在尝试在其他 google 帐户云平台上创建一个 PostgreSQL 实例,并同意使用 OAuth2Client 访问令牌方法。有人请帮忙吗?任何支持文件?
函数先 returns oAuth2Client 原样。但是在第二个函数中它会自动转换为 JSON 对象。
所以像这样更改了名为 second 的函数
function second(oAuth2Client)
{
var newoAuth2Client = new google.auth.OAuth2(
oAuth2Client._clientId,
oAuth2Client._clientSecret,
oAuth2Client.redirectUri
);
var tokenObj = {
access_token: oAuth2Client.credentials.tokens.access_token,
refresh_token: oAuth2Client.credentials.tokens.refresh_token,
};
newoAuth2Client.credentials = tokenObj;
var req = {
project: prjName,
resource: {
databaseVersion: "POSTGRES_13",
name: name,
region: cregion ,
gceZone: czone,
settings: {*****}
rootPassword: "xxxxx",
},
auth: newoAuth2Client,
};
var crpsql = await sqlAdmin.instances.insert(req);
return crpsql;
});
它像魔术一样奏效。
我需要使用 google SQL admin API 创建 PostgreSQL 实例,为了进行身份验证,我想在节点 js 客户端库中使用 OAuth2Client
function first() {
const oAuth2Client = new google.auth.OAuth2(
client_id,
client_secret,
redirect_uris[0]
);
var tkn = await oAuth2Client.getToken(code_from_another_user);
oAuth2Client.setCredentials(tkn);
return oAuth2Client;
});
function second(oAuth2Client)
{
var req = {
project: prjName,
resource: {
databaseVersion: "POSTGRES_13",
name: name,
region: cregion ,
gceZone: czone,
settings: {*****}
rootPassword: "xxxxx",
},
auth: oAuth2Client,
};
var crpsql = await sqlAdmin.instances.insert(req);
return crpsql;
});
function mainexec()
{
var a = first();
var b = second(a);
});
我收到这个错误
Error: No access, refresh token, API key or refresh handler callback is set
实际上,我正在尝试在其他 google 帐户云平台上创建一个 PostgreSQL 实例,并同意使用 OAuth2Client 访问令牌方法。有人请帮忙吗?任何支持文件?
函数先 returns oAuth2Client 原样。但是在第二个函数中它会自动转换为 JSON 对象。 所以像这样更改了名为 second 的函数
function second(oAuth2Client)
{
var newoAuth2Client = new google.auth.OAuth2(
oAuth2Client._clientId,
oAuth2Client._clientSecret,
oAuth2Client.redirectUri
);
var tokenObj = {
access_token: oAuth2Client.credentials.tokens.access_token,
refresh_token: oAuth2Client.credentials.tokens.refresh_token,
};
newoAuth2Client.credentials = tokenObj;
var req = {
project: prjName,
resource: {
databaseVersion: "POSTGRES_13",
name: name,
region: cregion ,
gceZone: czone,
settings: {*****}
rootPassword: "xxxxx",
},
auth: newoAuth2Client,
};
var crpsql = await sqlAdmin.instances.insert(req);
return crpsql;
});
它像魔术一样奏效。