Регистрирайте приложението си

Приложение, което вписва хората с Hivesigner, е Hive акаунт. Името му е client_id, който изпращате. Профилът му съдържа настройките, които Hivesigner чете: адресите за обратно извикване, към които може да изпраща токени, и за потока с код клиентска тайна. За да излъчва през API, акаунтът на приложението също дава posting правомощия на @hivesigner. Тази страница преминава през всяка стъпка.

Какво ви трябва

Искате да Акаунт за приложение и адреси за обратно извикване Клиентска тайна Разрешение за @hivesigner
Вписвате хора и излъчвате с потока с токен Да Не Да
Вписвате хора и излъчвате с потока с код (токени за обновяване) Да Да Да
Само вписвате хора, с токен, който назовава приложението ви Да Не Не
Само вписвате хора, от сайт без Hive акаунт Не Не Не
Изпращате връзки за подпис Не Не Не

За последните два реда вижте Вход без posting достъп и Връзки за подпис.

Създайте акаунта за приложението

  1. Създайте Hive акаунт за приложението си, например на https://ecency.com/signup. Използвайте отделен акаунт за приложението, не личния си. Името му е вашият client_id. Потребителите го виждат на екрана за съгласие до "Hive акаунт". Hive акаунт не може да бъде преименуван, затова изберете името внимателно.
  2. Добавете акаунта в 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 правомощия.

  1. Изберете акаунта на приложението си в Hivesigner.
  2. Отворете https://hivesigner.com/authorize/hivesigner.
  3. Страницата показва "Упълномощаване на @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 адреси за пренасочване, символ по символ.

Списък за проверка

  1. Hive акаунт за приложението, добавен в Hivesigner с active ключа му.
  2. На https://hivesigner.com/profile: "Този акаунт е приложение" включено, URI адресите за пренасочване изброени, клиентска тайна зададена, ако използвате потока с код.
  3. @hivesigner упълномощен на https://hivesigner.com/authorize/hivesigner, ако излъчвате през API.
  4. Връзка за вход, която изпраща точно един от вашите URI адреси за пренасочване. Вижте Вход с OAuth2.