Использование идентификаторов сторон в Project DABL в веб-приложении React Typescript (клонированное приложение create-daml-app) - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать веб-приложение на основе create-daml-app, и этот TypeScript для веб-приложений также будет развернут в Project DABL. Как мы можем использовать Стороны, которые были настроены в настройках Project DABL Ledger, и использовать их в качестве входа в веб-приложение с помощью React Typescript? На основе приложения create-daml-app они используют ссылку (https://login.projectdabl.com/auth/login?ledgerId= $ {ledgerId} `) для входа, в котором используется учетная запись Project DABL.

Я знаю, что мы можно загрузить стороны как json, а затем использовать их в веб-приложении, но можем ли мы динамически использовать напрямую настройку, которая была сделана в Project DABL Ledger Settings?

Спасибо за помощь в будущем!

1 Ответ

1 голос
/ 15 июля 2020

В DABL создаваемые вами стороны сопоставляются с вашей учетной записью пользователя DABL. При первом присоединении к реестру или его создании автоматически создается группа на ваше имя, и у вас есть возможность добавить больше. Однако каждая дополнительная сторона, которую вы добавляете через консоль, по-прежнему сопоставляется с вашей конкретной учетной записью DABL.

Взаимодействие с реестром санкционировано токенами JWT сторон. Кнопка и ссылка входа в систему - это, по сути, ярлык, позволяющий пользователю войти в свою учетную запись DABL, при этом автоматически предоставляя идентификатор стороны / JWT для стороны по умолчанию этого пользователя обратно в развернутый экземпляр веб-приложения. Веб-приложение должно хранить полученный токен и использовать его при взаимодействии с API.

Если вы создаете дополнительные партии Алисы и Боба с целью демонстрации или тестирования вашего приложения с точки зрения различных сторон, Я бы добавил несколько дополнительных входов формы в компонент Login, которые позволяют напрямую вводить идентификатор стороны и JWT. Их можно скопировать со страницы настроек главной книги в консоли. Ваше приложение React будет просто читать входные данные ID / JWT, сохранять их в состоянии и использовать их при выполнении запросов API в будущем. Таким образом, вам не нужно постоянно повторно загружать / заменять файл parties.json каждый день.

Компонент Login для DABL Chat - хороший пример приложения, которое вы можете посмотреть, которое обрабатывает как кнопку, так и этот идентификатор Подход к вводу / JWT. Вы можете развернуть его копию в новом проекте , если хотите увидеть, как это работает, или взгляните на исходный код для лучшего понимания. Поскольку вы также используете create-daml-app в качестве шаблона, вам нужно будет внести некоторые изменения, чтобы добавить эти входные данные и подключить их к вызовам API.

Обратите внимание, что если Алиса и Боб предназначены для реального производства пользователей системы, то рекомендуется использовать кнопку «Войти с помощью DABL», чтобы они могли присоединиться к отдельным учетным записям DABL. В этом сценарии parties.json из ваших настроек Ledger даже не будет включать их JWT, так как у вас не будет доступа к учетным данным, принадлежащим другим учетным записям.

См. Документацию DABL по аутентификации и адаптации. подробнее.

...