Flask-Dance হলো একটি Flask এক্সটেনশন যা আপনাকে OAuth ব্যবহার করে বিভিন্ন সেবা যেমন Google, Facebook, GitHub ইত্যাদির মাধ্যমে Authentication সহজে ইন্টিগ্রেট করতে সহায়তা করে। এই এক্সটেনশনটি বিভিন্ন OAuth প্রোভাইডারের সাথে সংযোগ স্থাপন করতে সাহায্য করে, যার ফলে ব্যবহারকারীদের জন্য তৃতীয় পক্ষের সেবা যেমন Google বা Facebook এর মাধ্যমে লগ ইন করার সুবিধা প্রদান করা হয়।
এখানে, আমরা Flask-Dance ব্যবহার করে Google এবং Facebook Authentication কিভাবে সেটআপ এবং ব্যবহার করা হয় তা দেখব।
১. Flask-Dance ইনস্টলেশন
প্রথমে Flask-Dance এবং Flask-OAuthlib ইনস্টল করতে হবে:
pip install flask flask-dance flask-sqlalchemy
২. Google Authentication Setup
ধাপ ১: Google API Console-এ প্রজেক্ট তৈরি করা
- Google API Console এ যান।
- একটি নতুন প্রজেক্ট তৈরি করুন।
- OAuth consent screen সঠিকভাবে পূর্ণ করুন।
- Credentials থেকে OAuth 2.0 Client IDs তৈরি করুন।
- Redirect URI হিসেবে
http://localhost:5000/googleব্যবহার করুন। - Client ID এবং Client Secret সংগ্রহ করুন।
ধাপ ২: Flask অ্যাপে Google Authentication ইন্টিগ্রেট করা
from flask import Flask, redirect, url_for, session
from flask_dance.contrib.google import make_google_blueprint, google
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.secret_key = 'your_secret_key'
# Flask-SQLAlchemy ডাটাবেস কনফিগারেশন
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
# Google OAuth কনফিগারেশন
google_bp = make_google_blueprint(client_id='your-client-id',
client_secret='your-client-secret',
redirect_to='google_login')
app.register_blueprint(google_bp, url_prefix='/google')
@app.route('/')
def home():
if not google.authorized:
return redirect(url_for('google.login'))
resp = google.get('/plus/v1/people/me')
assert resp.ok, resp.text
user_info = resp.json()
return f'Hello, {user_info["displayName"]}!'
if __name__ == "__main__":
app.run(debug=True)
এখানে:
make_google_blueprint: এটি Google OAuth 2.0 কনফিগারেশন সেটআপ করে।google.get('/plus/v1/people/me'): ব্যবহারকারীর তথ্য গ্রহণ করার জন্য Google API কল করা হয়।google.authorized: Google এর মাধ্যমে ইউজার অথেনটিকেট করা হয়েছে কিনা চেক করা হয়।
ধাপ ৩: অ্যাপ চালানো
python app.py
এটি http://localhost:5000/ এ গিয়ে Google লগইন পেজ প্রদর্শন করবে।
৩. Facebook Authentication Setup
ধাপ ১: Facebook Developer Console-এ প্রজেক্ট তৈরি করা
- Facebook Developer Console এ যান।
- একটি নতুন প্রজেক্ট তৈরি করুন এবং Facebook Login কনফিগারেশন করুন।
- App ID এবং App Secret সংগ্রহ করুন।
- Redirect URI হিসেবে
http://localhost:5000/facebookব্যবহার করুন।
ধাপ ২: Flask অ্যাপে Facebook Authentication ইন্টিগ্রেট করা
from flask import Flask, redirect, url_for, session
from flask_dance.contrib.facebook import make_facebook_blueprint, facebook
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.secret_key = 'your_secret_key'
# Flask-SQLAlchemy ডাটাবেস কনফিগারেশন
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db = SQLAlchemy(app)
# Facebook OAuth কনফিগারেশন
facebook_bp = make_facebook_blueprint(client_id='your-app-id',
client_secret='your-app-secret',
redirect_to='facebook_login')
app.register_blueprint(facebook_bp, url_prefix='/facebook')
@app.route('/')
def home():
if not facebook.authorized:
return redirect(url_for('facebook.login'))
resp = facebook.get('/me')
assert resp.ok, resp.text
user_info = resp.json()
return f'Hello, {user_info["name"]}!'
if __name__ == "__main__":
app.run(debug=True)
এখানে:
make_facebook_blueprint: এটি Facebook OAuth 2.0 কনফিগারেশন সেটআপ করে।facebook.get('/me'): ব্যবহারকারীর তথ্য গ্রহণ করার জন্য Facebook API কল করা হয়।facebook.authorized: Facebook এর মাধ্যমে ইউজার অথেনটিকেট করা হয়েছে কিনা চেক করা হয়।
ধাপ ৩: অ্যাপ চালানো
python app.py
এটি http://localhost:5000/ এ গিয়ে Facebook লগইন পেজ প্রদর্শন করবে।
৪. অ্যাপ্লিকেশন রিডাইরেকশন এবং সিকিউরিটি
প্রতিটি OAuth প্রদানকারী (যেমন Google বা Facebook) এক্সেস টোকেন এবং ব্যবহারকারীর তথ্য প্রাপ্তির জন্য callback URL বা redirect URI ব্যবহার করে। এটি অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ, যাতে কেউ আপনার অ্যাপ্লিকেশন থেকে অনুমোদিতভাবে ব্যবহারকারীর ডেটা অ্যাক্সেস করতে না পারে।
Flask-Dance Security
- Flask-Dance ব্যবহারের মাধ্যমে OAuth কনফিগারেশনের জন্য সিকিউরিটি ফিচারগুলি নিরাপদ থাকে।
- আপনি অ্যাপ্লিকেশনের
secret_keyএর মাধ্যমে সেশন ম্যানেজমেন্ট এবং ক্রস-সাইট রিকোয়েস্ট ফরজারি (CSRF) থেকে সুরক্ষা নিশ্চিত করতে পারেন।
Flask-Dance ব্যবহার করে Google এবং Facebook Authentication ইন্টিগ্রেট করা সহজ এবং কার্যকর। এটি Flask অ্যাপ্লিকেশনকে ব্যবহারকারীদের সোশ্যাল মিডিয়া অ্যাকাউন্টের মাধ্যমে লগ ইন করার সুযোগ দেয়, যা একটি খুবই জনপ্রিয় বৈশিষ্ট্য। Flask-Dance এর মাধ্যমে আপনি OAuth 2.0 পদ্ধতির সাথে সহজেই ইন্টিগ্রেট করতে পারেন এবং ব্যবহারকারীর তথ্য নিরাপদে সংগ্রহ করতে পারেন।