Зареєструйте застосунок

Застосунок, який виконує вхід людей через Hivesigner, є обліковим записом Hive. Його ім’я це client_id, який ви надсилаєте. Його профіль містить налаштування, які читає Hivesigner: адреси зворотного виклику, куди можна надсилати токени, і секрет клієнта для потоку з кодом. Щоб надсилати транзакції через API, обліковий запис застосунку також надає повноваження публікації обліковому запису @hivesigner. Ця сторінка проходить кожен крок.

Що вам потрібно

Ви хочете Обліковий запис застосунку й адреси зворотного виклику Секрет клієнта Дозвіл для @hivesigner
Виконувати вхід і надсилати транзакції в потоці з токеном Так Ні Так
Виконувати вхід і надсилати транзакції в потоці з кодом (токени оновлення) Так Так Так
Лише виконувати вхід, із токеном, у якому названо ваш застосунок Так Ні Ні
Лише виконувати вхід, із сайту без облікового запису Hive Ні Ні Ні
Надсилати посилання для підпису Ні Ні Ні

Про два останні рядки див. Вхід без доступу до публікації і Посилання для підпису.

Створіть обліковий запис застосунку

  1. Створіть обліковий запис Hive для свого застосунку, наприклад на https://ecency.com/signup. Використовуйте для застосунку окремий обліковий запис, а не свій особистий. Його ім’я і є вашим client_id. Користувачі бачать його на екрані згоди поруч із написом «Обліковий запис Hive». Обліковий запис Hive не можна перейменувати, тож обирайте ім’я уважно.
  2. Додайте обліковий запис до Hivesigner на https://hivesigner.com/import (Додати обліковий запис). Скористайтеся активним ключем або головним паролем: для дозволу нижче потрібен активний ключ.

Заповніть налаштування застосунку

Відкрийте https://hivesigner.com/profile з вибраним обліковим записом застосунку й задайте:

  • Цей обліковий запис є застосунком. Увімкніть це. Так обліковий запис позначається як застосунок, і API перевіряє це, перш ніж прийняти код або токен оновлення для нього.
  • URI перенаправлення. Ваші адреси зворотного виклику, по одній у рядку. Див. Адреси зворотного виклику.
  • Автор. Хто підтримує застосунок. Каталог застосунків на https://hivesigner.com/apps показує це.
  • Статус. Робоче або тестове середовище, для ваших власних записів. Hivesigner ставиться до обох однаково.
  • Секрет клієнта. Потрібен лише для потоку з кодом. Див. Секрет клієнта.

Заповніть також Ім’я і URL зображення профілю. Екран згоди показує зображення й назву вашого застосунку. Каталог застосунків на https://hivesigner.com/apps показує назву, Про сервіс і Вебсайт.

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

Примітка: назву, зображення й опис публікує сам обліковий запис вашого застосунку. Тому екран згоди показує також справжнє ім’я облікового запису (@myapp) і хост, на який він надсилає користувача: саме їх насправді використовують дозвіл і перенаправлення.

Адреси зворотного виклику

Адреса зворотного виклику (redirect_uri у запиті на вхід) це місце, куди Hivesigner повертає користувача з токеном або кодом. Hivesigner надсилає його лише на адресу, перелічену в обліковому записі вашого застосунку.

Правила

  • Точний збіг. redirect_uri у запиті має бути однією з ваших URI перенаправлення, символ у символ: схема, хост, порт, шлях і рядок запиту.
  • Лише https. Адреса зворотного виклику має використовувати https://. Звичайний http:// приймається лише на петльовому інтерфейсі: localhost, 127.0.0.1 або [::1].
  • Петльові порти можуть змінюватися. Зареєстрована петльова адреса зі звичайним http збігається з будь-яким петльовим хостом і портом за того самого шляху, рядка запиту, фрагмента й даних користувача. Зареєстрована петльова адреса з https:// лишається точним збігом.
  • Жодних власних схем. Адресу на кшталт myapp://callback буде відхилено. Див. Мобільні та настільні застосунки.
  • Жодних фрагментів. Не додавайте #fragment до адреси зворотного виклику.

Сторінка профілю відмовляється зберегти адресу, яка ніколи не змогла б працювати, і пише «Непридатні адреси зворотного виклику (дозволено https або http на localhost)».

Приклади

Із такими зареєстрованими URI перенаправлення:

https://myapp.example/auth/callback
http://localhost:3000/auth
redirect_uri у запиті Результат
https://myapp.example/auth/callback Прийнято: точний збіг
https://myapp.example/auth/callback/ Відхилено: зайва /
https://myapp.example/auth/callback?next=home Відхилено: інший рядок запиту
https://www.myapp.example/auth/callback Відхилено: інший хост
http://myapp.example/auth/callback Відхилено: звичайний http поза петльовим інтерфейсом
http://localhost:3000/auth Прийнято: точний збіг
http://127.0.0.1:51234/auth Прийнято: петльовий інтерфейс, той самий шлях, інший порт
http://[::1]:3000/auth Прийнято: петльовий інтерфейс, той самий шлях
http://127.0.0.1:3000/other Відхилено: інший шлях
https://localhost:3000/auth Відхилено: https не збігається з реєстрацією зі звичайним http
myapp://auth Відхилено: власна схема

Щоб приймати рядок запиту на своїй адресі зворотного виклику, зареєструйте адресу саме з цим рядком запиту. Hivesigner зберігає ваш власний рядок запиту й додає свої параметри після нього.

Мобільні та настільні застосунки

Hivesigner кладе токен в адресу зворотного виклику. Власна схема на кшталт myapp:// не прив’язана до одного застосунку: інший застосунок на тому самому пристрої може заявити на неї права й отримати токен. Тому Hivesigner відхиляє власні схеми й надсилає токени лише на адресу https або на петльовий інтерфейс власного пристрою користувача.

Натомість нативний застосунок використовує одне з такого:

  • Посилання https, яким він володіє. Зареєструйте адресу у своєму домені, яку операційна система відкриває у вашому застосунку (Android App Links або iOS Universal Links).
  • Петльову адресу. Застосунок слухає перенаправлення на 127.0.0.1. Зареєструйте http://127.0.0.1/auth (або localhost) і використовуйте під час роботи будь-який вільний порт: порт не мусить збігатися.

Секрет клієнта

Секрет клієнта доводить, що обмін коду відбувається з вашого сервера. Він обов’язковий для потоку з кодом: ваш сервер надсилає його з кожним кодом або токеном оновлення на /api/oauth2/token. Потік з токеном його не використовує.

  • Згенеруйте довге випадкове значення, наприклад через openssl rand -hex 32.
  • Задайте його на сторінці профілю. Hivesigner зберігає лише його хеш sha256, у профілі облікового запису вашого застосунку. Якщо лишити поле порожнім, поточний секрет збережеться.
  • Тримайте його на своєму сервері. Ніколи не кладіть його на вебсторінку, у мобільний застосунок чи в URL-адресу.
  • Щоб змінити його, задайте новий і водночас оновіть свій сервер.

Надайте @hivesigner повноваження публікації

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

  1. Виберіть у Hivesigner обліковий запис свого застосунку.
  2. Відкрийте https://hivesigner.com/authorize/hivesigner.
  3. На сторінці написано «Авторизувати @hivesigner» і «@hivesigner зможе публікувати, коментувати, голосувати та підписуватися від імені @myapp.» Виберіть Авторизувати. Для цього потрібен активний ключ облікового запису застосунку.

Це робиться один раз. Без цього кожне надсилання завершується помилкою unauthorized_client і повідомленням «Broadcaster account doesn't have permission to broadcast for @myapp». Застосунку, який лише виконує вхід, це не потрібно.

Цей дозвіл також дає @hivesigner змогу публікувати від імені самого облікового запису вашого застосунку, і це ще одна причина тримати цей обліковий запис лише для застосунку.

Застосунки, які надсилають транзакції через Hivesigner із цим дозволом, можуть з’являтися в каталозі застосунків на https://hivesigner.com/apps, упорядковані за кількістю людей, які ними користуються.

Що бачать користувачі, коли щось не так

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

Проблема Що читає користувач
redirect_uri не є жодною з ваших URI перенаправлення «URL-адресу перенаправлення цього застосунку не зареєстровано. Задля вашої безпеки вхід заблоковано.»
client_id не є обліковим записом Hive «@myapp не є обліковим записом Hive, тож немає застосунку, який можна авторизувати. Поверніться на сайт і спробуйте ще раз.»
Обліковий запис не позначено як застосунок «@myapp не налаштовано як застосунок, тому він не може виконати вхід. Поверніться на сайт і спробуйте ще раз.» Увімкніть Цей обліковий запис є застосунком, як описано вище.
У запиті немає redirect_uri «Цей запит на авторизацію неповний: у ньому не вказано застосунок або URL-адресу перенаправлення. Поверніться до застосунку й спробуйте ще раз.»

Якщо ваші користувачі повідомляють про одне з цього, звірте redirect_uri, який надсилає ваш застосунок, зі своїми URI перенаправлення символ за символом.

Контрольний список

  1. Обліковий запис Hive для застосунку, доданий до Hivesigner з активним ключем.
  2. На https://hivesigner.com/profile: «Цей обліковий запис є застосунком» увімкнено, URI перенаправлення перелічено, секрет клієнта задано, якщо ви користуєтеся потоком з кодом.
  3. @hivesigner авторизовано на https://hivesigner.com/authorize/hivesigner, якщо ви надсилаєте транзакції через API.
  4. Посилання для входу, яке надсилає одну з ваших URI перенаправлення точно. Див. Вхід через OAuth2.