অনেক ডেভেলপার ওয়েবসাইটে গুগল সোশ্যাল অথেনটিকেশন দেখতে পাই যা খুব হ্যান্ডি। এই আর্টিকেলে, আমরা দেখব কিভাবে একটি ডজ্যাঙ্গো গুগল লগইন প্রজেক্ট তৈরি করতে হয়।
প্রথমে, https://console.cloud.google.com/apis/dashboard-এ যান এবং একটি প্রজেক্ট তৈরি করুন।
Oauth consent screen-এ যান এবং একটি স্ক্রিন তৈরি করুন এবং Save & Continue ক্লিক করুন।
Credentials-এ যান এবং "Create Credentials"-এ ক্লিক করুন এবং তারপর "OAuth Client ID"-তে ক্লিক করুন:
তারপর, Web Application সিলেক্ট করুন, এবং এই দুটি URL যোগ করুন:
- https://127.0.0.1:8000/
- https://127.0.0.1:8000/accounts/github/login/callback/
এখন, আপনি একটি ক্লায়েন্ট আইডি এবং একটি সিক্রেট কি পাবেন, সেগুলো আপনার ফাইলে সুরক্ষিত রাখুন।
উদাহরণ
একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন।
settings.py-তে:
SITE_ID = 1
LOGIN_REDIRECT_URL = "/"
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"django.contrib.sites", # <--
"allauth", # <--
"allauth.account", # <--
"allauth.socialaccount", # <--
"allauth.socialaccount.providers.google", # <--
"googleauthentication" # this is my app name, you can name your app anything you want
]
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
# ফাইলের শেষে এটি যোগ করুন
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"allauth.account.auth_backends.AuthenticationBackend",
)
এখানে, আমরা একটি রিডাইরেক্ট URL সংজ্ঞায়িত করেছি। INSTALLED APPs-এ, আমরা অথেনটিকেশনের জন্য যে গুরুত্বপূর্ণ ব্যাকএন্ডগুলো ব্যবহার করব সেগুলো সংজ্ঞায়িত করেছি। তারপর, আমরা সোশ্যাল অ্যাকাউন্ট প্রোভাইডার সংজ্ঞায়িত করেছি যা বলে দেবে লগইনের জন্য কী ব্যবহার করতে হবে (এখানে আমরা গুগল ব্যবহার করছি)। আমরা ইউজারের কী ডেটা সংরক্ষণ করা উচিত সেটাও সংজ্ঞায়িত করেছি।
এখন, প্রজেক্টের urls.py-তে নিচের কোড যোগ করুন:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path("accounts/", include("allauth.urls")), # most important
path('', include("googleauthentication.urls")) # my app urls
]
এখানে, আমরা যে ডিফল্ট পাথটি যোগ করতে হবে সেটি যোগ করেছি; এটি allauth লাইব্রেরির পাথ গুগল লগইন সক্ষম করার জন্য। দ্বিতীয়টি হলো অ্যাপ পাথ যা আমরা তৈরি করেছি।
অ্যাপের urls.py-তে:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
]
এখানে, আমরা আমাদের urls সেট আপ করেছি এবং হোম url-এ আমাদের ভিউস রেন্ডার করেছি।
view.py-তে:
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
আমরা সিম্পলি এখানে ফ্রন্টএন্ড রেন্ডার করেছি।
অ্যাপের মেইন ডিরেক্টরিতে একটি template ফোল্ডার তৈরি করুন এবং একটি ফাইল home.html যোগ করুন নিচের কন্টেন্টসহ:
<!DOCTYPE html>
<html>
<head>
<title>Google Registration</title>
</head>
<body>
{% load socialaccount %}
<h1>My Google Login Project</h1>
<a href="{% provider_login_url 'google'%}?next=/">Login with Google</a>
</body>
</html>
এখানে, আমরা JS রেন্ডার করেছি এবং ফ্রন্টএন্ডে allauth লাইব্রেরি লোড করেছি। <a>-এ আমরা গুগল লগইন পেজ প্রদান করেছি जिसপরে আমরা আমাদের ডিফল্ট গুগল লগইন পেজ সেট আপ করেছি।
এখন, টার্মিনালে নিচের কমান্ডগুলো রান করুন:
python manage.py makemigrations python manage.py migrate
এরপর, একটি superuser তৈরি করুন।
python manage.py createsuperuser
তারপর, সার্ভার শুরু করুন এবং অ্যাডমিন প্যানেলে যান। Sites-এ যান এবং url নাম এবং ডিসপ্লে নাম সহ একটি সাইট যোগ করুন: https://127.0.0.1:8000
Social applications-এ যান এবং অ্যাপ্লিকেশন যোগ করুন:

এটি গুগলকে আপনার ডজ্যাঙ্গো প্রজেক্টে একটি অথেনটিকেশন ব্যাকএন্ড হিসেবে রেজিস্টার করবে। সব কিছু সেট, এখন আপনি আউটপুট চেক করতে পারেন।
আউটপুট
