আপনার ওয়েবসাইট বা অ্যাপে Posty5 দিয়ে লগইন যোগ করবেন যেভাবে

মানুষকে তাদের Posty5 অ্যাকাউন্ট দিয়ে আপনার সাইটে সাইন ইন করতে দিন, ঠিক Google-এর মতো - OpenID Connect, সম্মতি স্ক্রিন এবং Node.js ও Angular-এর জন্য তৈরি প্যাকেজ।

ADবিজ্ঞাপন
আপনার ওয়েবসাইট বা অ্যাপে Posty5 দিয়ে লগইন যোগ করবেন যেভাবে

প্রতিটি নতুন সাইন-আপ ফর্ম মানুষের কাছে আরও একটি পাসওয়ার্ড চায়, আর আপনি যে পাসওয়ার্ডই সংরক্ষণ করেন তা সুরক্ষিত রাখার আরও একটি দায়িত্ব। Login with Posty5 মানুষকে তাদের আগে থেকেই থাকা Posty5 অ্যাকাউন্ট দিয়ে আপনার ওয়েবসাইট বা অ্যাপে সাইন ইন করতে দেয়, ঠিক যেভাবে তারা Sign in with Google বেছে নেন।

এই লেখায় ব্যাখ্যা করা হয়েছে আপনার ব্যবহারকারীরা কী দেখেন, ডেভেলপার হিসেবে আপনি কী পান, এবং এটি যোগ করার চারটি ধাপ। এটি Posty5 ডেভেলপার প্ল্যাটফর্মের অংশ, যার বর্ণনা আছে API কী এবং SDK গাইডে।

Login with Posty5 কী

Posty5 এখন একটি OAuth 2.0 এবং OpenID Connect প্রোভাইডার। আপনি Posty5 Studio-তে আপনার অ্যাপ নিবন্ধন করেন, ব্যবহারকারীদের সাইন ইনের জন্য Posty5-এ পাঠান, এবং ফেরত পান একটি স্বাক্ষরিত ID টোকেন, যা আপনার সার্ভারকে জানায় তারা কে। আপনার সাইট কখনো তাদের Posty5 পাসওয়ার্ড দেখে না।

যেহেতু এটি স্ট্যান্ডার্ড মেনে চলে, তাই এটি Node.js ও Angular-এর Posty5 প্যাকেজের সঙ্গে এবং যেকোনো সার্টিফায়েড OpenID Connect লাইব্রেরির সঙ্গে কাজ করে - ASP.NET Core, Python, PHP বা Java। অ্যাপ নিবন্ধন আর ব্যবহারকারীদের সাইন ইনে কোনো ক্রেডিট খরচ হয় না, প্রতিটি প্ল্যানে।

আপনার ব্যবহারকারীরা কী দেখেন

  • আপনার সাইন-ইন পেজে একটি Login with Posty5 বা Continue with Posty5 বোতাম।
  • যদি তারা এখনো সাইন ইন না করে থাকেন তবে Posty5-এর নিজস্ব সাইন-ইন পেজ - পাসওয়ার্ড টাইপ হয় শুধু posty5.com-এ।
  • একটি সম্মতি স্ক্রিন, যেখানে থাকে আপনার অ্যাপের নাম, লোগো, ওয়েবসাইট, গোপনীয়তা নীতি ও শর্তাবলি, আপনি যে প্রতিটি তথ্য চান তার জন্য একটি করে লাইন, আর Allow ও Cancel।
  • তাদের পছন্দ মনে রাখা হয়: পরের সাইন ইন সরাসরি হয়ে যায়। তারা যেকোনো সময় অ্যাকাউন্ট, তারপর Connected apps থেকে আপনার অ্যাপের অ্যাক্সেস সরিয়ে দিতে পারেন।

ব্যবহারকারীর দিক থেকে পুরো প্রক্রিয়াটি আছে Login with Posty5 কী, আর আমার ডেটা কি নিরাপদ? লেখায়, যার লিংক আপনি নিজের সাইন-ইন পেজে দিতে পারেন।

ডেভেলপার হিসেবে আপনি যা পান

  • স্ট্যান্ডার্ড OpenID Connect - প্রতিটি সাইন ইনে বাধ্যতামূলক PKCE সহ authorization code flow, আর একটি discovery ডকুমেন্ট, যা থেকে বেশিরভাগ লাইব্রেরি নিজেরাই কনফিগার হয়ে যায়।
  • স্বাক্ষরিত ID টোকেন (RS256), যাতে থাকে ব্যবহারকারীর নাম, ছবি, ইমেইল এবং ইমেইলটি যাচাই করা কি না - শুধু সেই scopes-এর জন্য যেগুলোর অনুমতি ব্যবহারকারী দিয়েছেন।
  • আপনার অ্যাপের জন্য একটি ব্যক্তিগত ব্যবহারকারী ID। sub আপনার অ্যাপের জন্য স্থির থাকে এবং অন্য ডেভেলপারদের অ্যাপে আলাদা হয়, তাই অ্যাপগুলো নিজেদের মধ্যে ব্যবহারকারী মেলাতে পারে না।
  • Node.js ব্যাক এন্ডের জন্য @posty5/oauth, যার স্বাক্ষরিত লগইন লিংকের কোনো session store লাগে না, এবং @posty5/oauth-angular, Angular-এর জন্য কাস্টমাইজ করা যায় এমন একটি Continue with Posty5 বোতাম।
  • শুধু ফ্রন্ট-এন্ড অ্যাপের জন্য ব্রাউজার সাইন-ইন - প্রতিটি অ্যাপে আলাদাভাবে চালু হয়, এবং শুধু আপনার তালিকাভুক্ত ওয়েবসাইট origins থেকেই গৃহীত হয়।
  • Posty5 Studio-তে প্রতিটি অ্যাপের জন্য একটি Users ট্যাব, আর অ্যাপে যোগ করা একটি API কী, যা একই তালিকা আপনার সার্ভার থেকে পড়ে।

চারটি ধাপে যোগ করুন

  1. Posty5 Studio-তে Developers Kit খুলুন, তারপর OAuth apps, এবং Register app বেছে নিন। ব্যবহারকারীরা যে নাম, লোগো ও লিংক দেখবেন সেগুলো দিন, আর আপনার callback ঠিকানাটি redirect URI হিসেবে দিন।
  2. client ID ও client secret আপনার সার্ভারের কনফিগারেশনে কপি করুন। secret শুধু একবারই দেখানো হয়; পরে আপনি এটি বদলে (rotate) নিতে পারেন।
  3. @posty5/oauth ইনস্টল করুন এবং দুটি route যোগ করুন - একটি লগইন লিংক তৈরি করে ব্যবহারকারীকে Posty5-এ পাঠায়, আর আপনার callback, যা ফলাফল যাচাই করে।
  4. আপনার সাইন-ইন পেজে একটি Login with Posty5 বোতাম রাখুন, নিজে একবার সাইন ইন করে দেখুন, এবং আপনার ব্যবহারকারী রেকর্ডগুলো প্রাপ্ত sub দিয়ে চিহ্নিত করুন।
const link = await posty5.createLoginLink({ returnTo: "/account" });
res.cookie("p5_binding", link.binding, { httpOnly: true, secure: true, sameSite: "lax" });
res.redirect(link.url);

// on your redirect URI
const { claims, returnTo } = await posty5.handleLoginCallback(req.query, { binding: req.cookies.p5_binding });

লগইন লিংকটি PKCE verifier, nonce এবং আপনার ফেরার ঠিকানা একটি সিল করা state-এর ভেতরে বহন করে, তাই দুটি অনুরোধের মাঝে আপনার সার্ভারকে কিছুই রাখতে হয় না, আর একটি cookie লিংকটিকে সেই ব্রাউজারের সঙ্গে বেঁধে দেয় যে এটি চেয়েছিল।

আপনার প্রথম OAuth অ্যাপ নিবন্ধন করুন

Posty5 Studio-তে অ্যাপটি তৈরি করুন, এর credentials কপি করুন, আর নিজের সাইটে একটি সাইন ইন পরীক্ষা করে দেখুন।

কীভাবে ইন্টিগ্রেট করবেন তা বেছে নিন

  • Node.js ব্যাক এন্ডসহ একটি ওয়েবসাইট - @posty5/oauth ব্যবহার করুন। client secret আপনার সার্ভারেই থাকে।
  • একটি Angular অ্যাপ - @posty5/oauth-angular-এর বোতাম ব্যবহার করুন এবং সাইন ইন আপনার ব্যাক এন্ডকে চালাতে দিন। দেখুন Angular-এ Continue with Posty5 বোতাম কীভাবে যোগ করবেন।
  • ব্যাক এন্ড ছাড়া একটি স্ট্যাটিক অ্যাপ - অ্যাপের জন্য ব্রাউজার সাইন-ইন চালু করুন, আপনার সাইটের origins তালিকাভুক্ত করুন, এবং Angular প্যাকেজের browser মোড বা PKCE সমর্থন করে এমন যেকোনো OpenID Connect ক্লায়েন্ট ব্যবহার করুন।
  • অন্য যেকোনো ভাষা - আপনার client ID ও secret সহ আপনার OpenID Connect লাইব্রেরিকে https://api.posty5.com-এর দিকে নির্দেশ করুন।

শুরু করার আগে যে সীমাগুলো জানা দরকার

  • কোনো refresh token নেই। access token 1 ঘণ্টা স্থায়ী হয়, তাই সাইন ইনের পরে নিজের session রাখুন।
  • নীরব সাইন-ইন (prompt=none) দেওয়া হয় না। prompt=login বা max_age দিয়ে আপনি নতুন করে সাইন ইন বাধ্য করতে পারেন।
  • Login with Posty5 শুধু পরিচয় শেয়ার করে - নাম, ছবি ও ইমেইল। এটি আপনার অ্যাপকে ব্যবহারকারীর Posty5 কনটেন্টে কোনো অ্যাক্সেস দেয় না।
  • একটি অ্যাকাউন্ট সর্বোচ্চ 20টি OAuth অ্যাপ নিবন্ধন করতে পারে, প্রতিটিতে সর্বোচ্চ 10টি নির্দিষ্ট redirect URI।

সাধারণ জিজ্ঞাসা

Login with Posty5-এ কি ক্রেডিট খরচ হয়?

না। OAuth অ্যাপ নিবন্ধন আর ব্যবহারকারীদের সাইন ইনে কোনো ক্রেডিট খরচ হয় না, প্রতিটি প্ল্যানে।

আমার অ্যাপ কোন ডেটা পেতে পারে?

শুধু যা ব্যবহারকারী অনুমতি দেন: আপনার অ্যাপের জন্য একটি ব্যবহারকারী ID সবসময়, profile scope দিয়ে নাম ও প্রোফাইল ছবি, এবং email scope দিয়ে ইমেইল ঠিকানা ও সেটি যাচাই করা কি না।

ব্যাক এন্ড ছাড়া কি এটি ব্যবহার করা যায়?

হ্যাঁ। অ্যাপের জন্য ব্রাউজার সাইন-ইন চালু করুন এবং আপনার সাইটের origins তালিকাভুক্ত করুন। তখন ব্রাউজার PKCE দিয়ে, client secret ছাড়াই code বিনিময় করে। আপনার ব্যাক এন্ড থাকলে সাইন ইনের জন্য সেটিই ভালো জায়গা।

আমার অন্য অ্যাপে ব্যবহারকারী ID আলাদা কেন?

sub pairwise: এটি প্রতিটি অ্যাপের প্রথম redirect URI-এর host-এর ওপর নির্ভর করে, তাই আলাদা ডেভেলপারদের অ্যাপ ব্যবহারকারী মেলাতে পারে না। একই host দিয়ে নিবন্ধিত অ্যাপগুলো একই মান পায়।

আমার অ্যাপে কে সাইন ইন করেছে তা কি দেখা যায়?

হ্যাঁ। Posty5 Studio-তে প্রতিটি অ্যাপের একটি Users ট্যাব আছে, এবং অ্যাপে যোগ করা API কী একই তালিকা আপনার সার্ভার থেকে পড়ে, যেখানে থাকে শুধু প্রত্যেক ব্যবহারকারী যা শেয়ার করেছেন।

কোনো ব্যবহারকারী অ্যাক্সেস সরিয়ে দিলে কী হয়?

সেই ব্যবহারকারীর জন্য আপনার access token কাজ করা বন্ধ করে, ব্যবহারকারী আপনার Users তালিকা থেকে সরে যান, এবং তার পরের সাইন ইনে সম্মতি স্ক্রিন আবার দেখায়। আপনার সাইটে তার অ্যাকাউন্ট প্রভাবিত হয় না।

ADবিজ্ঞাপন