अपना ऐप पंजीकृत करें
जो ऐप 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, या localhost पर http)»।
उदाहरण
इन रीडायरेक्ट 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 टोकन को कॉलबैक URL में रखता है। 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 सूचीबद्ध, और कोड फ़्लो इस्तेमाल करने पर एक क्लाइंट सीक्रेट सेट।
- API से प्रसारण करने पर https://hivesigner.com/authorize/hivesigner पर @hivesigner को अनुमति दी हुई।
- ऐसा लॉगिन लिंक जो आपके रीडायरेक्ट URI में से ठीक एक भेजे। देखें OAuth2 से लॉगिन।