Зареєструйте застосунок
Застосунок, який виконує вхід людей через Hivesigner, є обліковим записом Hive. Його ім’я це client_id, який ви надсилаєте. Його профіль містить налаштування, які читає Hivesigner: адреси зворотного виклику, куди можна надсилати токени, і секрет клієнта для потоку з кодом. Щоб надсилати транзакції через API, обліковий запис застосунку також надає повноваження публікації обліковому запису @hivesigner. Ця сторінка проходить кожен крок.
Що вам потрібно
| Ви хочете | Обліковий запис застосунку й адреси зворотного виклику | Секрет клієнта | Дозвіл для @hivesigner |
|---|---|---|---|
| Виконувати вхід і надсилати транзакції в потоці з токеном | Так | Ні | Так |
| Виконувати вхід і надсилати транзакції в потоці з кодом (токени оновлення) | Так | Так | Так |
| Лише виконувати вхід, із токеном, у якому названо ваш застосунок | Так | Ні | Ні |
| Лише виконувати вхід, із сайту без облікового запису Hive | Ні | Ні | Ні |
| Надсилати посилання для підпису | Ні | Ні | Ні |
Про два останні рядки див. Вхід без доступу до публікації і Посилання для підпису.
Створіть обліковий запис застосунку
- Створіть обліковий запис Hive для свого застосунку, наприклад на https://ecency.com/signup. Використовуйте для застосунку окремий обліковий запис, а не свій особистий. Його ім’я і є вашим
client_id. Користувачі бачать його на екрані згоди поруч із написом «Обліковий запис Hive». Обліковий запис Hive не можна перейменувати, тож обирайте ім’я уважно. - Додайте обліковий запис до 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 до власних повноважень публікації. Див. Ланцюжок повноважень публікації.
- Виберіть у Hivesigner обліковий запис свого застосунку.
- Відкрийте https://hivesigner.com/authorize/hivesigner.
- На сторінці написано «Авторизувати @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 перенаправлення символ за символом.
Контрольний список
- Обліковий запис Hive для застосунку, доданий до Hivesigner з активним ключем.
- На https://hivesigner.com/profile: «Цей обліковий запис є застосунком» увімкнено, URI перенаправлення перелічено, секрет клієнта задано, якщо ви користуєтеся потоком з кодом.
- @hivesigner авторизовано на https://hivesigner.com/authorize/hivesigner, якщо ви надсилаєте транзакції через API.
- Посилання для входу, яке надсилає одну з ваших URI перенаправлення точно. Див. Вхід через OAuth2.