OAuth এবং Social Media Login Integration গাইড ও নোট

Computer Programming - নোড জেএস (Node.js) - Authentication এবং Authorization (অথেনটিকেশন এবং অথরাইজেশন)
246

OAuth (Open Authorization) একটি জনপ্রিয় অথেনটিকেশন এবং অথোরাইজেশন প্রোটোকল যা ব্যবহারকারীদের নিরাপদে এবং অনুমতি নিয়ে তাদের অ্যাপ্লিকেশনের জন্য তথ্য অ্যাক্সেস করতে সক্ষম করে। OAuth সাধারণত সামাজিক মিডিয়া লগিন যেমন Google, Facebook, Twitter ইত্যাদির সাথে সংযুক্ত করতে ব্যবহৃত হয়, যেখানে ইউজার তাদের সামাজিক অ্যাকাউন্ট ব্যবহার করে আপনার অ্যাপ্লিকেশনে লগ ইন করতে পারেন।

এখানে OAuth প্রোটোকল এবং Social Media Login Integration এর মাধ্যমে আপনি কিভাবে Node.js অ্যাপ্লিকেশনে সামাজিক মিডিয়া লগিন যুক্ত করতে পারেন তা বিস্তারিতভাবে দেখানো হবে।


১. OAuth কী?

OAuth হল একটি অথেনটিকেশন প্রোটোকল যা ক্লায়েন্ট অ্যাপ্লিকেশনকে একটি ইউজারের অ্যাকাউন্টের জন্য নির্দিষ্ট তথ্য অ্যাক্সেস করতে দেয়, তবে ইউজারের পাসওয়ার্ডের প্রয়োজন ছাড়াই। এতে দুটি প্রধান অংশ থাকে:

  • Authorization Server: যেখানে ব্যবহারকারীর অনুমতি নেওয়া হয়।
  • Resource Server: যেখানে ইউজারের তথ্য সংরক্ষিত থাকে (যেমন Google API, Facebook API ইত্যাদি)।

OAuth প্রক্রিয়া:

  1. ইউজার প্রথমে Authorization Server এর মাধ্যমে একটি অনুমতি প্রদান করে (যেমন: "Allow" বাটনে ক্লিক করা)।
  2. Authorization Server একটি Authorization Code প্রদান করে।
  3. ক্লায়েন্ট অ্যাপ্লিকেশন এই কোডটি ব্যবহার করে Token পেতে রিকোয়েস্ট পাঠায়।
  4. Token ব্যবহার করে ক্লায়েন্ট অ্যাপ্লিকেশন ইউজারের ডাটা অ্যাক্সেস করতে পারে।

২. Social Media Login Integration (Google, Facebook, Twitter)

Node.js এবং Express ব্যবহার করে Social Media Login Integration করতে, আপনি OAuth 2.0 প্রোটোকল ব্যবহার করে বিভিন্ন সামাজিক মিডিয়া সাইট (যেমন Google, Facebook) এর লগিন সিস্টেম যুক্ত করতে পারেন। এটি করার জন্য সাধারণত Passport.js নামক মডিউল ব্যবহার করা হয়।

Passport.js Overview

Passport.js হল একটি নমনীয় অথেনটিকেশন মিডলওয়্যার যা Express অ্যাপ্লিকেশনগুলিতে সামাজিক মিডিয়া লগিন ইন্টিগ্রেট করতে ব্যবহৃত হয়। এটি বিভিন্ন স্ট্রাটেজি (Google, Facebook, Twitter ইত্যাদি) সাপোর্ট করে এবং OAuth2.0 প্রোটোকল ব্যবহার করে।


৩. Google Login Integration (OAuth 2.0)

Google login ইন্টিগ্রেট করতে প্রথমে আপনি Google Developer Console এ গিয়ে একটি OAuth Client ID তৈরি করতে হবে।

Step 1: Google Developer Console Setup

  1. Google Developer Console এ যান: Google Developer Console
  2. একটি নতুন প্রোজেক্ট তৈরি করুন।
  3. "OAuth 2.0 Client IDs" তৈরি করুন এবং আপনার রিডিরেক্ট URI দিন (যেমন: http://localhost:3000/auth/google/callback)।
  4. Client ID এবং Client Secret সংগ্রহ করুন।

Step 2: Passport.js এবং Google OAuth Setup

  1. প্রথমে, প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:

    npm install passport passport-google-oauth20 express-session
  2. Express এ Passport.js এবং Google OAuth সেটআপ করুন:
const express = require('express');
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const session = require('express-session');

const app = express();

// Express session সেটআপ
app.use(session({
  secret: 'your_secret_key',
  resave: true,
  saveUninitialized: true
}));

// Passport.js সেটআপ
passport.serializeUser((user, done) => {
  done(null, user);
});

passport.deserializeUser((user, done) => {
  done(null, user);
});

// Google OAuth স্ট্রাটেজি সেটআপ
passport.use(new GoogleStrategy({
  clientID: 'YOUR_GOOGLE_CLIENT_ID',
  clientSecret: 'YOUR_GOOGLE_CLIENT_SECRET',
  callbackURL: 'http://localhost:3000/auth/google/callback'
}, (accessToken, refreshToken, profile, done) => {
  return done(null, profile);
}));

// Google Login রাউট
app.get('/auth/google', passport.authenticate('google', {
  scope: ['profile', 'email']
}));

// Google Callback রাউট
app.get('/auth/google/callback', passport.authenticate('google', {
  failureRedirect: '/'
}), (req, res) => {
  res.send('You are logged in with Google');
});

// Home রাউট
app.get('/', (req, res) => {
  res.send('Home Page');
});

// Server চালু করা
app.listen(3000, () => {
  console.log('Server running at http://localhost:3000');
});

এখানে, /auth/google রাউট ব্যবহারকারীদের Google এর লগইন পেজে রিডাইরেক্ট করবে এবং ইউজার সাফল্যের সাথে লগইন করলে /auth/google/callback পাথে রিডাইরেক্ট করবে। এই পাথের মাধ্যমে ইউজার এর প্রোফাইল ডাটা সংগ্রহ করা হবে।


৪. Facebook Login Integration (OAuth 2.0)

Facebook login ইন্টিগ্রেট করতে আপনাকে প্রথমে Facebook Developer Console এ গিয়ে একটি অ্যাপ্লিকেশন তৈরি করতে হবে এবং একটি App IDApp Secret সংগ্রহ করতে হবে।

Step 1: Facebook Developer Console Setup

  1. Facebook Developer Console এ যান: Facebook Developer Console
  2. একটি নতুন অ্যাপ তৈরি করুন।
  3. OAuth সেটিংস কনফিগার করুন এবং Redirect URI দিন (যেমন: http://localhost:3000/auth/facebook/callback).
  4. App ID এবং App Secret সংগ্রহ করুন।

Step 2: Passport.js এবং Facebook OAuth Setup

  1. Facebook OAuth স্ট্রাটেজি ইনস্টল করুন:

    npm install passport-facebook
  2. Express অ্যাপে Facebook OAuth ইন্টিগ্রেট করুন:
const express = require('express');
const passport = require('passport');
const FacebookStrategy = require('passport-facebook').Strategy;

const app = express();

// Express session সেটআপ
app.use(session({
  secret: 'your_secret_key',
  resave: true,
  saveUninitialized: true
}));

// Passport.js সেটআপ
passport.serializeUser((user, done) => {
  done(null, user);
});

passport.deserializeUser((user, done) => {
  done(null, user);
});

// Facebook OAuth স্ট্রাটেজি সেটআপ
passport.use(new FacebookStrategy({
  clientID: 'YOUR_FACEBOOK_APP_ID',
  clientSecret: 'YOUR_FACEBOOK_APP_SECRET',
  callbackURL: 'http://localhost:3000/auth/facebook/callback'
}, (accessToken, refreshToken, profile, done) => {
  return done(null, profile);
}));

// Facebook Login রাউট
app.get('/auth/facebook', passport.authenticate('facebook'));

// Facebook Callback রাউট
app.get('/auth/facebook/callback', passport.authenticate('facebook', {
  failureRedirect: '/'
}), (req, res) => {
  res.send('You are logged in with Facebook');
});

// Home রাউট
app.get('/', (req, res) => {
  res.send('Home Page');
});

// Server চালু করা
app.listen(3000, () => {
  console.log('Server running at http://localhost:3000');
});

এখানে, /auth/facebook রাউট ব্যবহারকারীদের Facebook এর লগইন পেজে রিডাইরেক্ট করবে এবং /auth/facebook/callback পাথে রিডাইরেক্ট হলে ইউজারের প্রোফাইল তথ্য প্রাপ্ত হবে।


সারাংশ

  • OAuth হল একটি প্রোটোকল যা ক্লায়েন্ট অ্যাপ্লিকেশনকে ইউজারের অ্যাকাউন্টের তথ্য অ্যাক্সেস করতে অনুমতি দেয়, তবে পাসওয়ার্ড ছাড়াই।
  • Google এবং Facebook এর OAuth ব্যবহার করে সামাজিক মিডিয়া লগিন সিস্টেম আপনার Node.js অ্যাপে যোগ করতে পারেন।
  • Passport.js ব্যবহার করে আপনি বিভিন্ন OAuth প্রটোকল সাপোর্ট করার মাধ্যমে সামাজিক মিডিয়া লগিন যুক্ত করতে পারেন।
  • Social Media Login ব্যবহারকারীদের জন্য নিরাপদ, সুবিধাজনক এবং দ্রুত লগিন সিস্টেম প্রদান করে, যা আপনার ওয়েব অ্যাপ্লিকেশনকে আরও ইউজার ফ্রেন্ডলি করে তোলে।
Content added By
Promotion

Are you sure to start over?

Loading...