برنامه خود را ثبت کنید
برنامهای که افراد را با Hivesigner وارد میکند، یک حساب Hive است. نام آن همان client_id است که میفرستید. پروفایل آن تنظیماتی را در خود دارد که Hivesigner میخواند: نشانیهای بازگشتی که توکنها میتوانند به آنها فرستاده شوند و، برای جریان کد، یک کلید محرمانه کلاینت. برای انتشار از راه API، حساب برنامه اختیار انتشار را هم به @hivesigner میدهد. این صفحه هر گام را پی میگیرد.
آنچه نیاز دارید
| آنچه میخواهید | حساب برنامه و نشانیهای بازگشت | کلید محرمانه کلاینت | اجازه @hivesigner |
|---|---|---|---|
| ورود افراد و انتشار با جریان توکن | بله | خیر | بله |
| ورود افراد و انتشار با جریان کد (توکنهای تازهسازی) | بله | بله | بله |
| فقط ورود افراد، با توکنی که نام برنامه شما را دارد | بله | خیر | خیر |
| فقط ورود افراد، از سایتی بدون حساب Hive | خیر | خیر | خیر |
| فرستادن پیوندهای امضا | خیر | خیر | خیر |
برای دو ردیف آخر، ببینید ورود بدون دسترسی انتشار و پیوندهای امضا.
حساب برنامه را بسازید
- یک حساب Hive برای برنامه خود بسازید، برای نمونه در https://ecency.com/signup. برای برنامه حساب جداگانهای به کار ببرید، نه حساب شخصی خودتان. نام آن
client_idشماست. کاربران آن را در صفحه رضایت کنار «حساب Hive» میبینند. نام حساب Hive را نمیتوان عوض کرد، پس نام را با دقت برگزینید. - حساب را در https://hivesigner.com/import به Hivesigner بیفزایید (افزودن حساب). کلید فعال یا گذرواژه اصلی را به کار ببرید: اجازهای که پایینتر میآید به کلید فعال نیاز دارد.
تنظیمات برنامه را پر کنید
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 که از آنِ خودش است. نشانی بازگشتی روی دامنه خود ثبت کنید که سیستمعامل آن را در برنامه شما باز کند (App Links در اندروید یا 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 اختیار انتشار بدهید
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 بازگشت فهرستشده، و اگر از جریان کد استفاده میکنید یک کلید محرمانه کلاینت تنظیمشده.
- اگر از راه API منتشر میکنید، @hivesigner در https://hivesigner.com/authorize/hivesigner مجاز شده باشد.
- پیوند ورودی که دقیقاً یکی از نشانیهای URI بازگشت شما را میفرستد. ببینید ورود با OAuth2.