0

我正在尝试基于 create-daml-app 创建一个 Web 应用程序,这个 Web 应用程序 React Typescript 也将部署到 Project DABL 中。我们如何使用在项目 DABL 分类帐设置中设置的各方,并使用 React Typescript 用作 Web 应用程序的登录名?基于 create-daml-app,他们使用链接 ( https://login.projectdabl.com/auth/login?ledgerId=${ledgerId}` ) 进行登录,其中使用 Project DABL 帐户。

我知道我们可以将各方下载为 json,然后在 Web 应用程序上使用,但我们可以直接动态使用在 Project DABL Ledger Settings 上完成的设置吗?

感谢您未来的帮助!

4

1 回答 1

2

在 DABL 中,您创建的各方映射到您的 DABL 用户帐户。第一次加入或创建账本时,会自动以您的名义创建一个派对,您可以选择添加更多。但是,您通过控制台添加的每个附加方仍会映射到您的特定 DABL 帐户。

与账本的交互由参与方 JWT 代币授权。登录按钮和链接本质上是一个快捷方式,允许用户登录到他们的 DABL 帐户,同时自动将该用户的默认参与方的参与方 ID/JWT 提供回已部署的 Web 应用程序实例。Web 应用程序应存储生成的令牌并在与 API 通信时使用它。

如果您创建额外的 Alice 和 Bob 方是为了从不同方的角度演示或测试您的应用程序,我会在 Login 组件中添加一些额外的表单输入,以允许直接输入方 ID 和 JWT。这些可以从控制台的 Ledger Settings 页面复制。您的 React 应用程序将简单地读取 ID/JWT 输入,将它们存储在状态中,并在将来发出 API 请求时使用它们。这样您就不需要parties.json每天不断地重新下载/替换文件。

DABL Chat 的登录组件是一个很好的示例应用程序,您可以查看它,它处理按钮和此 ID/JWT 输入方法。如果您想了解它是如何工作的,您可以将它的副本部署到一个新项目中,或者查看源代码以获得更好的理解。由于您还create-daml-app用作模板,因此您需要进行一些修改以添加这些输入并将它们连接到 API 调用中。

请注意,如果 Alice 和 Bob 是系统的真实生产用户,那么推荐的方法是让他们使用 Login with DABL 按钮,以便他们使用个人 DABL 帐户加入。在这种情况下,parties.json您的 Ledger Settings 甚至不会包含他们的 JWT,因为您将无权访问属于其他帐户的凭证。

有关更多详细信息,请参阅有关身份验证和入职的 DABL 文档。

于 2020-07-15T17:51:45.370 回答