আপনার অ্যাপ নিবন্ধন করুন
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 |
প্রত্যাখ্যাত: সাধারণ http-এর নিবন্ধনের সঙ্গে https মেলে না |
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 দিয়ে লগইন।