পোস্টিং অ্যাক্সেস ছাড়া লগইন
কিছু অ্যাপের শুধু জানা দরকার Hive-এ কোনো ব্যক্তি কে। তারা কখনও তার হয়ে পোস্ট, ভোট বা কিছু ব্রডকাস্ট করে না। Hivesigner এমন অ্যাপে মানুষকে কোনো পোস্টিং কর্তৃত্ব ছাড়াই লগইন করাতে পারে। ব্যবহারকারী প্রমাণ করেন যে তিনি একটি Hive অ্যাকাউন্ট নিয়ন্ত্রণ করেন। আপনার অ্যাপ তার নাম জানতে পারে। এই পাতায় দুটি উপায় আর ফলাফল নিরাপদে যাচাই করার পদ্ধতি দেখানো হয়েছে।
দুই উপায়
- অ্যাপ অ্যাকাউন্টসহ: আপনার অ্যাপের নিজস্ব Hive অ্যাকাউন্ট আছে এবং সে
scope=loginচায়। টোকেনে আপনার অ্যাপের নাম থাকে। - অ্যাপ অ্যাকাউন্ট ছাড়া: নিজস্ব Hive অ্যাকাউন্ট নেই এমন একটি সাইট শুধু একটি
redirect_uriপাঠায়। টোকেনে কোনো অ্যাপের নাম থাকে না। আপনার সাইট নিজেই সেটি যাচাই করে।
কোনোটিতেই ব্যবহারকারী বা আপনার অ্যাপ অ্যাকাউন্টের অনুমতি লাগে না, তাই ব্যবহারকারীর অ্যাকাউন্টে কিছুই বদলায় না। Hivesigner লগইনটি পোস্টিং কী দিয়ে সাইন করে, অথবা ডিভাইসে অ্যাকাউন্টের পোস্টিং কী না থাকলে অ্যাক্টিভ কী দিয়ে।
অ্যাপ অ্যাকাউন্টসহ
-
আপনার অ্যাপ নিবন্ধন করুন: তার Hive অ্যাকাউন্ট তৈরি করুন আর আপনার কলব্যাকগুলো তালিকাভুক্ত করুন। ক্লায়েন্ট সিক্রেট আর @hivesigner-এর অনুমতি লাগবে না।
-
ব্যবহারকারীকে এখানে পাঠান:
https://hivesigner.com/oauth2/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=login&state=STATE -
ব্যবহারকারী স্কোপ "আপনার অ্যাকাউন্টের ইউজারনেম দেখা" সহ "APP-এ লগইন করুন" দেখেন। তিনি লগইন করুন বেছে নেন।
-
Hivesigner আপনার কলব্যাকে রিডাইরেক্ট করে:
REDIRECT_URI?state=STATE&access_token=TOKEN&expires_in=604800&username=USERNAME -
stateমিলিয়ে দেখুন, তারপর টোকেনটি যাচাই করুন। এটি একটিloginটোকেন যাতে আপনার অ্যাপের নাম আছে, তাই এর যে কোনোটি কাজ করে:- এটি দিয়ে
GET /api/meডাকুন, যাuser-এ অ্যাকাউন্ট আরscopeহিসেবে["login"]ফেরত দেয়, তারপর টোকেন ডিকোড করেtypeআরappযাচাই করুন (API-কে জিজ্ঞেস করুন); - অথবা
type: 'login'আর আপনার অ্যাপের নাম দিয়ে নিজে যাচাই করুন।
- এটি দিয়ে
login টোকেন ব্রডকাস্ট করতে পারে না: /api/broadcast এটি দিয়ে পাঠানো প্রতিটি অপারেশন প্রত্যাখ্যান করে।
অ্যাপ অ্যাকাউন্ট ছাড়া
-
ব্যবহারকারীকে
redirect_uriসহ এবংclient_idছাড়া অনুমোদন URL-এ পাঠান:https://hivesigner.com/oauth2/authorize?redirect_uri=REDIRECT_URI&state=STATEকলব্যাকটি
https://হতে হবে, বা লুপব্যাকেhttp://(localhost,127.0.0.1,[::1])। এটি নিবন্ধন করার মতো কোনো তালিকা নেই। এখানে Hivesignerscopeআরresponse_typeউপেক্ষা করে: উত্তর সবসময় একটি লগইন টোকেন। -
ব্যবহারকারী দেখেন "HOST আপনার Hive ইউজারনেম নিশ্চিত করতে চায়।", যেখানে HOST হলো আপনার কলব্যাকের হোস্ট। তিনি লগইন করুন বেছে নেন।
-
Hivesigner আপনার কলব্যাকে রিডাইরেক্ট করে:
REDIRECT_URI?state=STATE&access_token=TOKEN&expires_in=604800&username=USERNAME -
stateমিলিয়ে দেখুন, তারপর টোকেনটি নিজে যাচাই করুন। API এমন টোকেন নেয় না যাতে কোনো অ্যাপের নাম নেই, তাই আপনার সার্ভার অ্যাকাউন্টের কী-এর বিপরীতে স্বাক্ষর যাচাই করে। দেখুন নিজে যাচাই করুন,type: 'login'সহ এবংappছাড়া।
কলব্যাকটি ওয়েব ঠিকানা না হলে, বা লুপব্যাকের বাইরে সাধারণ http:// হলে, Hivesigner অনুরোধটি প্রত্যাখ্যান করে এবং ব্যবহারকারীকে কারণ জানায়।
কোনটি ব্যবহার করবেন
| অ্যাপ অ্যাকাউন্টসহ | অ্যাপ অ্যাকাউন্ট ছাড়া | |
|---|---|---|
| ব্যবহারকারী যা দেখেন | আপনার অ্যাপের নাম, ছবি আর Hive অ্যাকাউন্ট | শুধু আপনার সাইটের হোস্ট |
| প্রস্তুতি | কলব্যাক তালিকাভুক্ত করা একটি Hive অ্যাকাউন্ট | কিছুই নয় |
| টোকেনে থাকে | আপনার অ্যাপ | কোনো অ্যাপ নয় |
| টোকেন যাচাই করুন | /api/me বা নিজের কোড দিয়ে |
নিজের কোড দিয়ে |
| পরে পোস্টিং অ্যাক্সেস | একই অ্যাকাউন্টে: posting চান আর @hivesigner-কে অনুমতি দিন |
আগে একটি অ্যাপ অ্যাকাউন্ট লাগবে |
পারলে অ্যাপ অ্যাকাউন্ট ব্যবহার করুন। ব্যবহারকারীরা আপনার অ্যাপের নাম আর ছবি দেখেন। আপনার সার্ভার অন্য অ্যাপের জন্য তৈরি টোকেন বাতিল করতে পারে। পরে একই অ্যাকাউন্টে পোস্টিং অ্যাক্সেসে যেতে পারেন।
দ্বিতীয় উপায়টি ব্যবহার করুন যখন আপনার সাইটের Hive অ্যাকাউন্ট নেই এবং রাখতেও চায় না।
লগইন নিরাপদে যাচাই করুন
stateদিয়ে অনুরোধ বাঁধুন। প্রতিটি লগইনের জন্য একটি র্যান্ডম মান তৈরি করুন, ব্যবহারকারীর সেশনে রাখুন, কলব্যাকে মিলিয়ে দেখুন এবং একবারই ব্যবহার করুন। দেখুন state দিয়ে অনুরোধ সুরক্ষিত করুন।- টাইপ যাচাই করুন। শুধু
signed_message.typeloginগ্রহণ করুন। কোড বা রিফ্রেশ টোকেন লগইন নয়। - অ্যাপ যাচাই করুন। অ্যাপ অ্যাকাউন্ট থাকলে
signed_message.appআপনার অ্যাপ হতে হবে। না থাকলে কোনোappথাকা চলবে না। - বয়স যাচাই করুন। আপনি রিডাইরেক্টের ঠিক পরেই টোকেন যাচাই করেন, তাই এটি শুধু তার
timestamp-এর কয়েক মিনিটের মধ্যেই গ্রহণ করুন (যেমন ৫ মিনিট, ঘড়ির এক মিনিট ফারাক ধরে)। - প্রতিটি টোকেন একবারই ব্যবহার করুন। সফল যাচাইয়ের পর নিজের সেশন শুরু করুন (যেমন একটি httpOnly কুকি) এবং Hivesigner টোকেনটি ফেলে দিন। গ্রহণ করা টোকেনগুলোর হিসাব রাখুন যতক্ষণ না সেগুলো বয়সের পরীক্ষায় উতরানোর মতো আর টাটকা থাকে। আবার দেখলে যে কোনোটি প্রত্যাখ্যান করুন।
- টোকেন লগের বাইরে রাখুন। এটি আপনার কলব্যাকের কোয়েরি স্ট্রিংয়ে আসে। দেখুন টোকেন নিরাপদে রাখুন।
উদাহরণ
https://hivesearcher.com আর https://openhive.chat-এর মতো সাইট মানুষকে তাদের Hive অ্যাকাউন্ট দিয়ে লগইন করতে দেয়, এমন ফিচারের জন্য যা চেইনের বাইরেই থাকে, যেমন অনুসন্ধান আর চ্যাট। তাদের শুধু জানা দরকার ব্যক্তিটি কে, আর কিছুই নয়।