Hivesigner কীভাবে কাজ করে
Hivesigner মানুষকে তাদের Hive অ্যাকাউন্ট আপনার অ্যাপে ব্যবহার করতে দেয়, আপনার অ্যাপকে কী না দিয়েই। এর দুটি অংশ: https://hivesigner.com ঠিকানায় ব্রাউজার সাইনার আর https://hivesigner.com/api/ ঠিকানায় একটি API। এই পাতায় বলা হয়েছে প্রতিটি অংশ কী করে এবং একটি অ্যাপ কোন দুই উপায়ে সেগুলো ব্যবহার করে।
ব্রাউজার সাইনার
ব্রাউজার সাইনার হলো Hivesigner ওয়েবসাইট। মানুষ সেখানে তাদের Hive অ্যাকাউন্ট যোগ করে। তাদের কী তাদের নিজের ব্রাউজারেই থাকে: Hivesigner কোনো সার্ভারে কী পাঠায় না। আপনার অ্যাপ কখনও কোনো কী দেখে না।
সাইনার তিন ধরনের জিনিস সাইন করে, প্রতিবারই ব্যবহারকারী কী সাইন করছে তা দেখার পর:
- লগইন টোকেন। আপনার অ্যাপ কাউকে লগইন করার জন্য Hivesigner-এ পাঠায়। Hivesigner আপনার অ্যাপের নাম আর সে কী চাইছে তা দেখায়। ব্যবহারকারী অনুমোদন দিলে Hivesigner তার কী দিয়ে একটি ছোট বিবৃতি সাইন করে, যাতে তার অ্যাকাউন্ট আর আপনার অ্যাপের নাম থাকে। সেই সাইন করা বিবৃতিই সেই টোকেন যা আপনার অ্যাপ পায়। দেখুন OAuth2 দিয়ে লগইন আর টোকেন।
- লেনদেন। একটি সাইন লিংক পর্যালোচনার জন্য একটি লেনদেন খোলে। ব্যবহারকারী অনুমোদন দিলে Hivesigner সেটিকে প্রয়োজনীয় কী দিয়ে সাইন করে। তারপর ব্রাউজার থেকেই সেটি Hive নেটওয়ার্কে পাঠায়, যদি না লিংকটি শুধু স্বাক্ষরটুকুই চায়। দেখুন সাইন লিংক।
- বার্তা। আপনার অ্যাপ কোনো ব্যবহারকারীকে তার কী দিয়ে একটি লেখা সাইন করতে বলতে পারে, প্রমাণ করতে যে সে অ্যাকাউন্টটি নিয়ন্ত্রণ করে। দেখুন বার্তা সাইন করা।
API
API সেই ব্যবহারকারীর হয়ে পোস্টিং অপারেশন ব্রডকাস্ট করে যিনি আপনার অ্যাপে লগইন করেছেন: পোস্ট ও মন্তব্য, ভোট, অনুসরণ এবং অন্যান্য custom_json অপারেশন, রিওয়ার্ড সংগ্রহ আর প্রোফাইল আপডেট। আপনার অ্যাপ অপারেশনগুলো ব্যবহারকারীর টোকেনসহ পাঠায়। API টোকেনটি যাচাই করে, @hivesigner অ্যাকাউন্টের পোস্টিং কী দিয়ে লেনদেনটি সাইন করে এবং Hive-এ ব্রডকাস্ট করে।
API লগইন করা ব্যবহারকারীর অ্যাকাউন্টও ফেরত দেয়, কোডকে টোকেনে বদলে দেয় এবং Hivesigner ব্যবহার করা অ্যাপের তালিকা দেয়। দেখুন REST API।
পোস্টিং কর্তৃত্বের শৃঙ্খল
Hive-এ একটি অ্যাকাউন্ট অন্য একটি অ্যাকাউন্টকে তার পোস্টিং কর্তৃত্ব দিয়ে কাজ করতে দিতে পারে। API এমন দুটি অনুমতির উপর নির্ভর করে:
@alice (the user)
posting authority includes @myapp (your app account)
posting authority includes @hivesigner (the API)
The API signs with the @hivesigner posting key.
Hive accepts that signature for @alice, through @myapp.
- ব্যবহারকারী তার পোস্টিং কর্তৃত্বে আপনার অ্যাপ অ্যাকাউন্ট যোগ করেন। কোনো ব্যবহারকারী প্রথমবার আপনার অ্যাপের জন্য পোস্টিং অ্যাক্সেস অনুমোদন করলে সম্মতির পর্দা এই কাজটি করে। এর জন্য একবার ব্যবহারকারীর অ্যাক্টিভ কী লাগে।
- আপনার অ্যাপ অ্যাকাউন্ট তার পোস্টিং কর্তৃত্বে @hivesigner যোগ করে। এটি আপনি একবার করেন, যখন আপনার অ্যাপ নিবন্ধন করেন।
ব্রডকাস্ট করার আগে API দেখে নেয় যে দুটি অনুমতিই আছে। এটি শুধু সেই অপারেশনগুলোই ব্রডকাস্ট করে যেগুলোর লেখক টোকেনে উল্লেখ করা ব্যবহারকারী।
ব্যবহারকারী যে কোনো সময় https://hivesigner.com/authorized-apps ঠিকানায় আপনার অ্যাপের অ্যাক্সেস সরিয়ে দিতে পারেন। তারপর API আর আপনার অ্যাপের মাধ্যমে তার হয়ে পোস্ট করতে পারে না।
ইন্টিগ্রেশনের দুই উপায়
লগইন, তারপর API দিয়ে ব্রডকাস্ট
1. Your app sends the user to https://hivesigner.com/oauth2/authorize?client_id=...
2. The user reviews the request in Hivesigner and approves it
3. Hivesigner redirects to REDIRECT_URI?access_token=...&expires_in=604800&username=alice
4. Your app POSTs the token and the operations to https://hivesigner.com/api/broadcast
5. The API signs with the @hivesigner posting key and broadcasts to Hive
ব্যবহারকারী একবার অনুমোদন দেন। এরপর আপনার অ্যাপ আর না জিজ্ঞেস করেই তার হয়ে ভোট, মন্তব্য ও পোস্ট করতে পারে, যতক্ষণ না টোকেনের মেয়াদ শেষ হয় বা ব্যবহারকারী আপনার অ্যাপের অ্যাক্সেস সরিয়ে দেন। দৈনন্দিন সামাজিক কাজের জন্য এটি ব্যবহার করুন।
আপনার দরকার একটি অ্যাপ অ্যাকাউন্ট, যাতে কলব্যাক নিবন্ধিত থাকবে আর @hivesigner-এর অনুমতি থাকবে। দেখুন আপনার অ্যাপ নিবন্ধন করুন। আপনি যদি শুধু জানতে চান ব্যবহারকারী কে, তাহলে দেখুন পোস্টিং অ্যাক্সেস ছাড়া লগইন।
সাইন লিংক
1. Your app sends the user to https://hivesigner.com/sign/... with the transaction in the link
2. The user reviews the transaction in Hivesigner and approves it
3. Hivesigner signs it with the user's own key in the browser and broadcasts it
4. Hivesigner redirects to your callback, when the link names one
ব্যবহারকারী প্রতিটি লেনদেন সাইন হওয়ার আগে দেখেন। সাইন লিংক Hive-এর ৪১টি অপারেশন কভার করে, যার মধ্যে আছে স্থানান্তর আর অন্যান্য ওয়ালেট কাজ যেগুলোর জন্য অ্যাক্টিভ কী লাগে। API কখনও সেগুলো সামলায় না। সাইন লিংকের জন্য আপনার কোনো অ্যাপ অ্যাকাউন্ট লাগে না। দেখুন সাইন লিংক।
কোনটি বেছে নেবেন
- ঘন ঘন পোস্টিং কাজ (ভোট, মন্তব্য, অনুসরণ): OAuth2 দিয়ে লগইন করান, তারপর API ব্যবহার করুন।
- ওয়ালেটের কাজ, বা অ্যাক্টিভ কী লাগে এমন যে কোনো কিছু: সাইন লিংক ব্যবহার করুন।
- দুটোই: অনেক অ্যাপ সামাজিক ফিচারের জন্য OAuth2 দিয়ে লগইন করায় এবং স্থানান্তরের জন্য সাইন লিংক ব্যবহার করে।
- শুধু ব্যবহারকারীর পরিচয়: দেখুন পোস্টিং অ্যাক্সেস ছাড়া লগইন।
সোর্স কোড
Hivesigner ওপেন সোর্স:
- ব্রাউজার সাইনার: https://github.com/ecency/hivesigner-ui
- API: https://github.com/ecency/hivesigner-api
- JavaScript SDK (npm প্যাকেজ
hivesigner): https://github.com/ecency/hivesigner-sdk। দেখুন SDK।