Як працює Hivesigner

Hivesigner дає людям змогу користуватися своїм обліковим записом Hive у вашому застосунку, не передаючи йому своїх ключів. Він має дві частини: підписувач у браузері за адресою https://hivesigner.com і API за адресою https://hivesigner.com/api/. Ця сторінка пояснює, що робить кожна частина, і два способи, якими застосунок їх використовує.

Підписувач у браузері

Підписувач у браузері це вебсайт Hivesigner. Люди додають до нього свої облікові записи Hive. Їхні ключі залишаються у власному браузері: Hivesigner не надсилає ключ на жоден сервер. Ваш застосунок не бачить жодного.

Підписувач підписує три види речей, і щоразу користувач спершу бачить, що саме він підписує:

  • Токени входу. Ваш застосунок надсилає людину до Hivesigner, щоб вона увійшла. Hivesigner показує назву вашого застосунку й те, що він просить. Коли користувач схвалює, Hivesigner підписує його ключем коротке твердження, у якому названо його обліковий запис і ваш застосунок. Це підписане твердження і є токеном, який отримує ваш застосунок. Див. Вхід через OAuth2 і Токени.
  • Транзакції. Посилання для підпису відкриває транзакцію для перегляду. Коли користувач схвалює її, Hivesigner підписує її потрібним ключем. Потім надсилає її до мережі Hive з браузера, якщо посилання не просить лише підпис. Див. Посилання для підпису.
  • Повідомлення. Ваш застосунок може попросити користувача підписати текст своїм ключем, щоб довести, що він контролює обліковий запис. Див. Підписування повідомлень.

API

API надсилає в мережу операції рівня публікації від імені користувача, який увійшов до вашого застосунку: дописи й коментарі, голоси, підписки та інші операції custom_json, отримання винагород і оновлення профілю. Ваш застосунок надсилає операції разом із токеном користувача. API перевіряє токен, підписує транзакцію ключем публікації облікового запису @hivesigner і надсилає її в Hive.

API також повертає обліковий запис користувача, який увійшов, обмінює коди на токени й перелічує застосунки, що користуються Hivesigner. Див. REST API.

Ланцюжок повноважень публікації

У Hive обліковий запис може дозволити іншому обліковому запису діяти з його повноваженнями публікації. API спирається на два такі дозволи:

@alice (the user)
  posting authority includes  @myapp (your app account)
                                posting authority includes  @hivesigner (the API)

The API signs with the @hivesigner posting key.
Hive accepts that signature for @alice, through @myapp.
  1. Користувач додає обліковий запис вашого застосунку до своїх повноважень публікації. Екран згоди робить це, коли користувач уперше схвалює доступ до публікації для вашого застосунку. Для цього один раз потрібен активний ключ користувача.
  2. Обліковий запис вашого застосунку додає @hivesigner до своїх повноважень публікації. Це ви робите один раз, коли реєструєте застосунок.

Перед надсиланням API перевіряє, що обидва дозволи на місці. Він надсилає лише операції, автором яких є користувач, названий у токені.

Користувач будь-коли може прибрати доступ вашого застосунку на https://hivesigner.com/authorized-apps. Після цього API більше не публікує за нього через ваш застосунок.

Два способи інтеграції

Вхід, а потім надсилання через API

1. Your app     sends the user to https://hivesigner.com/oauth2/authorize?client_id=...
2. The user     reviews the request in Hivesigner and approves it
3. Hivesigner   redirects to REDIRECT_URI?access_token=...&expires_in=604800&username=alice
4. Your app     POSTs the token and the operations to https://hivesigner.com/api/broadcast
5. The API      signs with the @hivesigner posting key and broadcasts to Hive

Користувач схвалює один раз. Після цього ваш застосунок може голосувати, коментувати й публікувати за нього, не питаючи знову, доки не спливе токен або користувач не прибере доступ. Використовуйте це для щоденних соціальних дій.

Вам потрібен обліковий запис застосунку із зареєстрованими адресами зворотного виклику та дозволом для @hivesigner. Див. Зареєструйте застосунок. Якщо ви хочете лише знати, хто цей користувач, див. Вхід без доступу до публікації.

1. Your app     sends the user to https://hivesigner.com/sign/... with the transaction in the link
2. The user     reviews the transaction in Hivesigner and approves it
3. Hivesigner   signs it with the user's own key in the browser and broadcasts it
4. Hivesigner   redirects to your callback, when the link names one

Користувач бачить кожну транзакцію до того, як її буде підписано. Посилання для підпису охоплюють 41 операцію Hive, зокрема перекази та інші дії з гаманцем, для яких потрібен активний ключ. API таких ніколи не обробляє. Для посилань для підпису обліковий запис застосунку не потрібен. Див. Посилання для підпису.

Що обрати

  • Часті дії публікації (голоси, коментарі, підписки): вхід через OAuth2, а далі API.
  • Дії з гаманцем або будь-що, для чого потрібен активний ключ: посилання для підпису.
  • І те, й інше: багато застосунків використовують вхід через OAuth2 для соціальних функцій і посилання для підпису для переказів.
  • Лише особа користувача: див. Вхід без доступу до публікації.

Вихідний код

Hivesigner має відкритий код:

  • Підписувач у браузері: https://github.com/ecency/hivesigner-ui
  • API: https://github.com/ecency/hivesigner-api
  • JavaScript SDK (пакет npm hivesigner): https://github.com/ecency/hivesigner-sdk. Див. SDK.