使用 Trino 客户端进行外部身份验证而不是 BasicAuth

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

我正在使用 Trino 与 OpenSky 进行通信,OpenSky 是一个飞行记录 (ADSB) 历史数据库。我是 OpenSky 网络的贡献者并拥有批准的凭据。

OpenSky 快速指南展示了如何通过 CLI 使用 Trino:


trino --user=USER --password --server=https://trino.opensky-network.org --external-authentication --catalog "minio" --schema "osky"

当我执行此操作时,它成功连接,我可以在终端中运行查询。但是,如果我删除

-external authentication
标志,则会导致无效凭据错误。

由于 Trino 客户端将在 Node.js 服务器的后端运行,所以我需要使用编程客户端 trino-client

const trino: Trino = Trino.create({
  server: "https://trino.opensky-network.org",
  catalog: 'minio',
  schema: 'osky',
  auth: new BasicAuth(process.env.OPENSKY_USERNAME as string, process.env.OPENSKY_PASSWORD as string),
});

但是,这会导致相同的无效凭据错误。这让我得出这样的结论:这是因为 Trino 编程客户端使用的是 BasicAuth 而不是外部身份验证。外部身份验证会自动打开 Web 浏览器以登录 CLI。

有什么方法可以使用具有外部身份验证的编程式 Trino 客户端吗? 如果确实存在,是否可以在

trio-client
node.js 客户端中使用,或者我应该切换到其他客户端?只要是程序化的,我都可以使用任何一种方式。

node.js rest trino
1个回答
0
投票

pyopensky中,我们使用JWTAuthentication。 您可以在此处看到我们发送用于获取令牌的 POST 查询。

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