Регистрирайте приложението си
Приложение, което вписва хората с Hivesigner, е Hive акаунт. Името му е client_id, който изпращате. Профилът му съдържа настройките, които Hivesigner чете: адресите за обратно извикване, към които може да изпраща токени, и за потока с код клиентска тайна. За да излъчва през API, акаунтът на приложението също дава posting правомощия на @hivesigner. Тази страница преминава през всяка стъпка.
Какво ви трябва
| Искате да | Акаунт за приложение и адреси за обратно извикване | Клиентска тайна | Разрешение за @hivesigner |
|---|---|---|---|
| Вписвате хора и излъчвате с потока с токен | Да | Не | Да |
| Вписвате хора и излъчвате с потока с код (токени за обновяване) | Да | Да | Да |
| Само вписвате хора, с токен, който назовава приложението ви | Да | Не | Не |
| Само вписвате хора, от сайт без Hive акаунт | Не | Не | Не |
| Изпращате връзки за подпис | Не | Не | Не |
За последните два реда вижте Вход без posting достъп и Връзки за подпис.
Създайте акаунта за приложението
- Създайте Hive акаунт за приложението си, например на https://ecency.com/signup. Използвайте отделен акаунт за приложението, не личния си. Името му е вашият
client_id. Потребителите го виждат на екрана за съгласие до "Hive акаунт". Hive акаунт не може да бъде преименуван, затова изберете името внимателно. - Добавете акаунта в Hivesigner на https://hivesigner.com/import (Добавяне на акаунт). Използвайте active ключа или главната парола: разрешението по-долу изисква active ключа.
Попълнете настройките на приложението
Отворете https://hivesigner.com/profile с избран акаунта на приложението и задайте:
- Този акаунт е приложение. Включете го. Това отбелязва акаунта като приложение, което API проверява, преди да приеме код или токен за обновяване за него.
- URI адреси за пренасочване. Вашите адреси за обратно извикване, по един на ред. Вижте Адреси за обратно извикване.
- Създател. Кой поддържа приложението. Директорията с приложения на https://hivesigner.com/apps го показва.
- Състояние. Производствено или тестово, за собствените ви записи. Hivesigner третира двете еднакво.
- Клиентска тайна. Нужна е само за потока с код. Вижте Клиентска тайна.
Попълнете също Име и URL адрес на профилната снимка. Екранът за съгласие показва снимката и името на приложението ви. Директорията с приложения на https://hivesigner.com/apps показва името, Описание и Уебсайт.
Запазването обновява профила на акаунта в блокчейна и изисква неговия posting ключ. Hivesigner чете адресите ви за обратно извикване от акаунта, когато се отвори заявка за вход, така че промяната влиза в сила веднага щом транзакцията попадне в блок.
Бележка: Името, снимката и описанието се публикуват от самия акаунт на вашето приложение. Затова екранът за съгласие показва също истинското име на акаунта (
@myapp) и хоста, към който изпраща потребителя: точно те се използват от разрешението и пренасочването.
Адреси за обратно извикване
Адресът за обратно извикване (redirect_uri в заявката за вход) е мястото, където Hivesigner връща потребителя с токен или код. Hivesigner го изпраща само към адрес, посочен в акаунта на вашето приложение.
Правилата
- Точно съвпадение.
redirect_uriв заявката трябва да е един от вашите URI адреси за пренасочване, символ по символ: схема, хост, порт, път и query. - Само https. Адресът за обратно извикване трябва да използва
https://. Обикновенhttp://се приема само на локален адрес:localhost,127.0.0.1или[::1]. - Портовете на локален адрес може да се променят. Регистриран локален адрес с обикновен http съвпада с всеки локален хост и порт със същия път, query, фрагмент и потребителска информация. Регистриран локален адрес с
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 |
Отказан: query е различен |
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 |
Отказан: собствена схема |
За да приемате query на своя адрес за обратно извикване, регистрирайте адреса точно с този query. Hivesigner запазва собствения query на адреса ви и добавя своите параметри след него.
Мобилни и настолни приложения
Hivesigner поставя токена в адреса за обратно извикване. Собствена схема като myapp:// не е обвързана с едно приложение: друго приложение на същото устройство може да я заяви и да получи токена. Затова Hivesigner отказва собствени схеми и изпраща токени само към https адрес или към локален адрес на собственото устройство на потребителя.
Нативното приложение използва един от тези начини:
- https връзка, която притежава. Регистрирайте адрес за обратно извикване на своя домейн, който операционната система отваря във вашето приложение (App Links в Android или Universal Links в iOS).
- Локален адрес за обратно извикване. Приложението слуша на
127.0.0.1за пренасочването. Регистрирайтеhttp://127.0.0.1/auth(илиlocalhost) и използвайте свободен порт по време на работа: портът не е нужно да съвпада.
Клиентска тайна
Клиентската тайна доказва, че размяната на код идва от вашия сървър. Тя е задължителна за потока с код: вашият сървър я изпраща с всеки код или токен за обновяване към /api/oauth2/token. Потокът с токен не я използва.
- Генерирайте дълга случайна стойност, например с
openssl rand -hex 32. - Задайте я на страницата на профила. Hivesigner съхранява само нейния sha256 хеш, в профила на акаунта на вашето приложение. Оставено празно, полето запазва текущата тайна.
- Дръжте я на своя сървър. Никога не я поставяйте в уеб страница, мобилно приложение или URL адрес.
- За да я смените, задайте нова и обновете сървъра си едновременно.
Дайте на @hivesigner posting правомощия
API излъчва с posting ключа на акаунта @hivesigner. Hive приема този подпис за вашите потребители само когато акаунтът на приложението ви е добавил @hivesigner към собствените си posting правомощия. Вижте Веригата от posting правомощия.
- Изберете акаунта на приложението си в Hivesigner.
- Отворете https://hivesigner.com/authorize/hivesigner.
- Страницата показва "Упълномощаване на @hivesigner" и "@hivesigner ще може да публикува, коментира, гласува и следва като @myapp.". Изберете Упълномощи. Това изисква active ключа на акаунта на приложението.
Правите го веднъж. Без него всяко излъчване се проваля с 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 с active ключа му.
- На https://hivesigner.com/profile: "Този акаунт е приложение" включено, URI адресите за пренасочване изброени, клиентска тайна зададена, ако използвате потока с код.
- @hivesigner упълномощен на https://hivesigner.com/authorize/hivesigner, ако излъчвате през API.
- Връзка за вход, която изпраща точно един от вашите URI адреси за пренасочване. Вижте Вход с OAuth2.